Java XWiki扩展:检测事件空间创建

Java XWiki扩展:检测事件空间创建,java,xwiki,Java,Xwiki,根据这里的文档,我们可以看到,在xwiki java扩展中,我们可以拦截事件UserCreation,如下所示: 我想做同样的事情,但我想检测事件空间的创建(基本上是当你在你的维基中添加一个空间(基本上一个空间是一篇文章的主要根页面)时。但是我没有发现任何类似XWikiUsers的类用于该空间或页面 它不想使用velocity或groovy,但在纯java扩展中,我不知道,文档非常庞大,但很难找到我要找的内容。从技术上讲,每当在其下创建页面时(终端页面或WebHome),都会创建一个“空间”

根据这里的文档,我们可以看到,在xwiki java扩展中,我们可以拦截事件UserCreation,如下所示:

我想做同样的事情,但我想检测事件空间的创建(基本上是当你在你的维基中添加一个空间(基本上一个空间是一篇文章的主要根页面)时。但是我没有发现任何类似XWikiUsers的类用于该空间或页面

它不想使用velocity或groovy,但在纯java扩展中,我不知道,文档非常庞大,但很难找到我要找的内容。

从技术上讲,每当在其下创建页面时(终端页面或
WebHome
),都会创建一个“空间”

所以你可以:

  • 每次创建页面时都要执行查询(
    DocumentCreatingEvent
    ,所以还没有
    DocumentCreatedEvent
    ),然后执行查询(请参阅),查看空间(与新文档的空间引用相匹配)是否与数据库中的现有空间或更深层嵌套空间相匹配……或者
  • 检查新创建的文档(
    DocumentCreatedEvent
    )是否具有名称
    WebHome
    ,该名称在性能方面会更好,但如果您使用的是终端文档(即“WebHome”文档以外的其他文档,请参阅
public void onEvent(Event event, Object source, Object data)
{
    XWikiDocument document = (XWikiDocument) source;
    String wikiName = document.getDocumentReference().getWikiReference().getName();
    DocumentReference userClass = new DocumentReference(wikiName, "XWiki", "XWikiUsers");

    if (document.getXObject(userClass) != null) {
}