Hi,
See below
Dan Svoboda wrote:
> Hi,
>
> I'm trying to use the notification system to trigger the sending of
> email whenever a comment is added to a blog article. I'm patterning my
> groovy class after the pircbot example on the xwiki snippets site.
>
> My system is xwiki workspaces as a virtual xwiki under xem. The
> platform version is 1.5.2.
>
> Here's my groovy class (XWSNotify.BlogMailNotificationGroovyClass):
>
> /* Groovy Class #* */
>
> import com.xpn.xwiki.api.XWiki;
> import com.xpn.xwiki.XWikiContext;
> import com.xpn.xwiki.notify.XWikiDocChangeNotificationInterface;
> import com.xpn.xwiki.notify.DocObjectChangedRule;
> import com.xpn.xwiki.notify.XWikiNotificationRule;
> import com.xpn.xwiki.doc.XWikiDocument;
>
> public class BlogMailNotificationGroovyClass implements \
>
> XWikiDocChangeNotificationInterface
>
> {
> def xwiki;
> def rule;
> def name;
>
> public void initClasses(XWikiContext context)
> {
> this.xwiki = context.getWiki();
> // listen to notifications
> this.rule = DocObjectChangedRule(this);
>
> context.getWiki().getNotificationManager().addGeneralRule(rule);
> }
>
> public void notify(XWikiNotificationRule rule, XWikiDocument
> newdoc, \
> XWikiDocument olddoc, int event, XWikiContext
> context)
> {
> def length = newdoc.getSpace().length();
> def lastFour = length - 4;
> if(newdoc.getSpace().substring(lastFour) == "Blog") {
>
> def ms = xwiki.getPlugin("mailsender");
> def nb = ms.sendHtmlMessage(context.getUser(), "[EMAIL PROTECTED]
> ", \
> context.get("ccrecipients"),
> context.get("bccrecipients"), \
> context.get("subject"),
> newdoc.getRenderedContent(), \
> newdoc.getContent(),
> newdoc.getAttachments());
> }
> }
> }
>
> /* *# */
>
> Here's a velocity script I'm using to initialize/test:
>
> #set($sc = $context.getContext().getEngineContext().getServletContext())
> $sc.getAttribute("blgmailnotif")<br/>
> #set($blgmlnotif =
> $xwiki.parseGroovyFromPage("XWSNotify.BlogMailNotificationGroovyClass"))
> #set($ok = $sc.setAttribute("blgmailnotif", $blgmlnotif))
> #set($blgmailnotif = $sc.getAttribute("blgmailnotif"))
> $sc.getAttribute("blgmailnotif")<br/>
> #set($ok = $blgmlnotif.initClasses($context))
> #set($ok = $blgmlnotif.notify($blgmlnotif.rule,$newdoc,$newdoc,
> 3,$context))
>
> Here's the output from the velocity script:
>
> [EMAIL PROTECTED]
> [EMAIL PROTECTED]
>
> So, the groovy class gets initialized to a new reference successfully
> each time parseGroovyFromPage is called.
>
> Here's what appears in the log after running the velocity script:
>
> [ERROR] Left side ($request.title) of '!=' operation has null value.
> Operation not possible. [line 53, column 43]
> [WARNING] Cannot retrieve method notify from object of class
> BlogMailNotificationGroovyClass due to security restrictions.
>
> If I alter the velocity script to:
>
> #set($sc = $context.getContext().getEngineContext().getServletContext())
> $sc.getAttribute("blgmailnotif")<br/>
>
> Here's what appears in the log:
>
> [ERROR] Left side ($request.title) of '!=' operation has null value.
> Operation not possible. [line 53, column 43]
>
> So, the [WARNING] is the only log entry pertaining to the groovy class.
>
> If I add a comment to a Blog article (with or without the
> BlogMailNotificationGroovyClass initialized), the following appears in
> the log:
>
> [ERROR] Left side ($index) of addition operation has null value.
> Operation not possible. [line 20, column 25]
> [ERROR] Left side ($index) of addition operation has null value.
> Operation not possible. [line 20, column 25]
> [ERROR] Left side ($index) of addition operation has null value.
> Operation not possible. [line 20, column 25]
> [ERROR] Left side ($index) of addition operation has null value.
> Operation not possible. [line 20, column 25]
> [ERROR] Left side ($index) of addition operation has null value.
> Operation not possible. [line 20, column 25]
> [ERROR] Left side ($index) of addition operation has null value.
> Operation not possible. [line 20, column 25]
> [ERROR] Left side ($index) of addition operation has null value.
> Operation not possible. [line 20, column 25]
> [ERROR] Left side ($index) of addition operation has null value.
> Operation not possible. [line 20, column 25]
> [ERROR] Left side ($index) of addition operation has null value.
> Operation not possible. [line 20, column 25]
>
> The number of lines corresponds to the number of comments present in
> the Blog article. There's nothing in the log pertaining to the groovy
> class.
Indeed, this has nothing to do with your groovy notification. This is
generated by the velocity engine.
Is your skin customized ? Is the blog application modified ? (The log
says that somewhere a variable $index is trying to add something to
"null". Might be the pagination of blog articles ?)
Jerome.
>
> What am I doing wrong? Is there a way to put additional groovy
> debugging information into the log?
>
> Thanks,
>
> Dan Svoboda
> University of Pittsburgh Center for HIV Protein Interactions
> _______________________________________________
> users mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/users
_______________________________________________
users mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/users