Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [aspectj-users] Custom MessageHandler for static pointcuts

Ok, I will try what you give below.  However, I do have a question: Where does your Handler exist?
 ${example.dir}?

--- Wes Isberg <wes@xxxxxxxxxxxxxx> wrote:

> I added this to aspectj-1.2/doc/examples/build.xml:
> 
>     <target name="test" depends="init">
>        <iajc outjar="${jar.dir}/test.jar"
>           classpath="${aspectjrt.jar}"
>         messageholderclass="Handler"
>             verbose="on">
>          <src path="${example.dir}"/>
>          <include name="test/Test.java" />
>        </iajc>
>     </target>
> 
> But you said your handler is being loaded, right?  (Which means
> both the handler and aspectjtools.jar, with the message handler,
> is on the classpath Ant uses to load things...)
> 
> Wes
> 
> > ------------Original Message------------
> > From: "Charles Daniels" <cjd4@xxxxxxxxx>
> > To: aspectj-users@xxxxxxxxxxx
> > Date: Fri, Sep-24-2004 11:15 AM
> > Subject: RE: [aspectj-users] Custom MessageHandler for static pointcuts
> >
> > Hi Wes,
> > 
> > I appreciate your help.  I copied your code below, but still see 
> > nothing (no
> > file generated).  Perhaps I am not using the Ant task properly.  Would 
> > you
> > mind posting the Ant task you used to get things sent to the file?
> > 
> > Thanks,
> > Chuck
> > 
> > > -----Original Message-----
> > > From: aspectj-users-admin@xxxxxxxxxxx
> > > [mailto:aspectj-users-admin@xxxxxxxxxxx]On Behalf Of Wes Isberg
> > > Sent: Friday, September 24, 2004 11:50 AM
> > > To: aspectj-users@xxxxxxxxxxx
> > > Subject: RE: [aspectj-users] Custom MessageHandler for static 
> > pointcuts
> > >
> > >
> > > Hi Chuck -
> > >
> > > I just did an experiment and found that printing to System.out
> > > didn't work (is Ant suppressing it?), but printing to a file did.
> > > My code is below.
> > >
> > > Regarding IMessageHolder, the basic contract it inherits for
> > > IMessageHandler.handleMessage(IMessage) is just that it's called for
> > > each message, so your code should gain control as mine did to write
> > > the message.  Whether you configure a MessageHandler you extend to
> > > only accumulate messages shouldn't make a difference.
> > >
> > > I hope this works for you...
> > > Wes
> > >
> > > ------------------ Handler.java
> > > import java.io.*;
> > > import org.aspectj.bridge.*;
> > >
> > > public class Handler extends MessageHandler {
> > >     public Handler() {
> > >         super(true);
> > >     }
> > >
> > >     public boolean handleMessage(IMessage m) {
> > >         try {
> > >             Writer w = null;
> > >             try {
> > >                 w = new FileWriter("output.txt", true);
> > >                 new PrintWriter(w).println("got " + m);
> > >             } finally {
> > >                 if (null != w)
> > >                     w.close();
> > >             }
> > >         } catch (IOException e) {
> > >             throw new Error(e);
> > >         }
> > >         return super.handleMessage(m);
> > >     }
> > > }
> > >
> > >
> > > > ------------Original Message------------
> > > > From: "Charles Daniels" <cjd4@xxxxxxxxx>
> > > > To: aspectj-users@xxxxxxxxxxx
> > > > Date: Thu, Sep-23-2004 10:10 PM
> > > > Subject: RE: [aspectj-users] Custom MessageHandler for static 
> > pointcuts
> > > >
> > > > Hi Wes,
> > > >
> > > > Thanks for your quick reply.  Unfortunately, I'm not forking, and I
> > > > still
> > > > can't see what is happening.  Using Maven, I added the -X option to
> > > > show
> > > > debugging output and saw that it was loading my IMessageHolder
> > > > implementation.  However, I still see no difference in behavior and 
> > I
> > > > see no
> > > > exception.
> > > >
> > > > Anyway, I did some digging through the source, as you suggested.  
> > What
> > > > I
> > > > found is that perhaps IMessageHolder is not used as I suspected.  I
> > > > looked
> > > > at MessageHandler (the default IMessageHolder implementation), and 
> > it
> > > > only
> > > > accumulates messages.  I don't know where the messages actually get
> > > > sent to
> > > > output (or wherever they actually get sent -- logger/listener?).  I
> > > > just
> > > > want to be able to capture error messages from 'declare warning'
> > > > declarations and write them to a file that I can transform into a
> > > > report.
> > > >
> > > > Cheers,
> > > > Chuck
> > > >
> > > > > -----Original Message-----
> > > > > From: aspectj-users-admin@xxxxxxxxxxx
> > > > > [mailto:aspectj-users-admin@xxxxxxxxxxx]On Behalf Of Wes Isberg
> > > > > Sent: Thursday, September 23, 2004 7:13 PM
> > > > > To: aspectj-users@xxxxxxxxxxx
> > > > > Subject: Re: [aspectj-users] Custom MessageHandler for static
> > > > pointcuts
> > > > >
> > > > >
> > > > > You're probably forking; there should be a log message saying
> > > > > "message holder ignored when forking [...]", but perhaps Ant
> > > > > has to be in verbose mode for you to see the log message. It's
> > > > > ignored when forking because it's implemented programmatically
> > > > > from Ant rather than being supported on the -ajc command line
> > > > > (which is what's forked).
> > > > >
> > > > > The documentation for MessageHandlers is just the mention in
> > > > > the iajc docs and the IMessageHandler source code.  See also
> > > > > the code for AjcTask (iajc) and org.aspectj.tools.Ajc.
> > > > >
> > > > > Hope this helps; let us know if it's something else...
> > > > >
> > > > > Wes
> > > > >
> > > > > P.S. - If you must fork, you might consider taking the messages
> > > > > in XML form from Ant and selecting your messages during the
> > > > > transform.  (I haven't done this myself, so I'm just 
> > speculating.)
> > > > >
> > > > > > ------------Original Message------------
> > > > > > From: "Charles Daniels" <cjd4@xxxxxxxxx>
> > > > > > To: aspectj-users@xxxxxxxxxxx
> > > > > > Date: Thu, Sep-23-2004 1:55 PM
> > > > > > Subject: [aspectj-users] Custom MessageHandler for static 
> > pointcuts
> > > > > >
> > > > > > Hi All,
> > > > > >
> > > > > > I am attempting to implement my own MessageHandler for 
> > collecting
> > > > > > "policy
> > > > > > violations" detected by static pointcuts (declare warning and
> > > > declare
> > > > > > error).  I want my handler to generate an XML report that I can
> > > > then
> > > > > > transform into an HTML report.  Unfortunately, when I run iajc, 
> > it
> > > > > > completely ignores the handler implementation that I specify 
> > (no
> > > > error
> > > > > > message either).  I cannot find and documentation on the use of
> > > > > > MessageHandlers.  Can anybody shed some light on this topic?
> > > > > >
> > > > > > Thanks,
> > > > > > Chuck
> > > > > >
> > > > > > _______________________________________________
> > > > > > aspectj-users mailing list
> > > > > > aspectj-users@xxxxxxxxxxx
> > > > > > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > > > >
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > aspectj-users mailing list
> > > > > aspectj-users@xxxxxxxxxxx
> > > > > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > >
> > > > _______________________________________________
> > > > aspectj-users mailing list
> > > > aspectj-users@xxxxxxxxxxx
> > > > http://dev.eclipse.org/mailman/listinfo/aspectj-users
> > > >
> > >
> > >
> > > _______________________________________________
> > > aspectj-users mailing list
> 
=== message truncated ===



Back to the top