Hi devs,

Problem: 

* We have several ways of getting the main wiki id and the current wiki id:
** way 1: $services.wiki.mainWikiId and $services.wiki.currentWikiId
** way 2: $xcontext.getMainWikiName() and $context.getDatabase()
* In menu_macros.vm we set: #set ($mainWikiId = $services.wiki.mainWikiId)
** This is used in some other templates such as drawer.vm:
   #set ($hasHomeWikiAdmin = $xwiki.hasAccessLevel('admin', $xcontext.user, 
"${mainWikiId}:XWiki.XWikiPreferences”))
** This means that currently is a module doesn’t declare a dependency on the 
wiki module, its functional tests will fail with:

15:29:29.868 [Thread-13] ERROR o.x.t.i.XWikiLogOutputStream - 2015-08-31 
15:29:29,868 [http://localhost:8080/xwiki/bin/register/XWiki/Register] WARN  
o.h.u.JDBCExceptionReporter    - SQL Error: -4850, SQLState: 3F000 
15:29:29.869 [Thread-13] ERROR o.x.t.i.XWikiLogOutputStream - 2015-08-31 
15:29:29,868 [http://localhost:8080/xwiki/bin/register/XWiki/Register] ERROR 
o.h.u.JDBCExceptionReporter    - invalid schema name: ${MAINWIKIID} 
15:29:29.884 [Thread-13] ERROR o.x.t.i.XWikiLogOutputStream - 2015-08-31 
15:29:29,883 [http://localhost:8080/xwiki/bin/register/XWiki/Register] ERROR 
.a.DefaultAuthorizationManager - Failed to load rights for user [Public] on 
[${mainWikiId}:XWiki.XWikiPreferences]. 

Solution:

* Make the Wiki API Module and the Wiki Script Module a core API (ie the most 
minimal version of XWiki cannot work without them)

Actions to take:

* Add a dep on these 2 modules in PackagerMojo.java
* Deprecate $xcontext.getMainWikiName() and $context.getDatabase() and favor 
using $services.wiki.mainWikiId and $services.wiki.currentWikiId (once we 
finish adjusting all places, move xcontext.getMainWikiName() and 
context.getDatabase to the oldcore legacy module).
* Remove all the checks we do to check for the availability of the wiki script 
service. For example:

admin.vm:       #if ("$!services.wiki" != '' && $services.wiki.currentWikiId != 
$services.wiki.mainWikiId)
Activity.xml:     #if ("$!services.wiki" != '' && 
$services.wiki.mainWikiId == $services.wiki.currentWikiId)
menuview.vm: #set ($isWikiAPIAvailable = ("!$services.wiki" != '') && 
("!$services.wiki.user" != ''))
CreateWiki.xml: #if ($services.wiki && $services.wiki.creationjob)


WDYT?

Thanks
-Vincent

_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to