[
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 ===