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

Reply via email to