I am fairly new (just a few days) to aspectj but after some
initial
problems am now doing this, (but perhaps not doing it the best way).
Here are the things i am doing:
Note: for a while i could not get things to work,. It was hard to find
out what was going wrong, e.g. no logs.
* In the Glassfish Admin Console (e.g. port 4848)/Application
Server/JVM Settings/JVM Options
I added
-javaagent:<path>\aspectjweaver.jar
-Daj.weaving.verbose=true
Question#1: I wish i knew all of the -D options, and what they did??
* I place my aspects-filter.jar right now in
glassfish/domains/domain1/lib
I had better success when i narrowed down my aspect's scope.
Question#2: If i place it in the application classpath
MY_APP/WEB-INF/lib will the weaving only apply to the classes loaded by
the application classloader
* build.xml
<iajc srcdir="${src.dir}/aop" destdir="${build.dir}/aop"
debug="true" source="1.6" target="1.6">
<classpath refid="compile.class.path" />
</iajc>
Note: I believe this defaults to 1.3 or something. I had better success
after changing this
* WEB-INF/aop.xml
<aspectj>
<aspects>
<aspect name="aspects.FilterAspect" />
</aspects>
<weaver
options="-XmessageHandlerClass:aspects.AspectJMessageHandler">
<!--
<weaver options="-verbose -showWeaveInfo">
-->
<dump within="blah.*"/>
</weaver>
</aspectj>
Question#3: I wish i knew all of the weaver options, and what they did??
Question#4: I wish you could configure where to dump the classes??
Note: There are not many good examples of this aop.xml file
* IMessageHandler
I had better success after i started using this.
package aspects;
import org.aspectj.bridge.AbortException;
import org.aspectj.bridge.IMessage;
import org.aspectj.bridge.IMessage.Kind;
public class AspectJMessageHandler implements
org.aspectj.bridge.IMessageHandler {
public void dontIgnore(Kind arg0) {
}
public boolean handleMessage(IMessage arg0) throws AbortException {
// note i actually write the message to a log, basically
log(new Date() + " " + arg0)
return true;
}
public void ignore(Kind arg0) {
}
public boolean isIgnoring(Kind arg0) {
return false;
}
}
* Questions: What does this mean??
debug weaving 'com.sun.jbi.filebc.extensions.FileExtensionRegistry'
info AspectJ Weaver Version 1.6.1 built on Thursday Jul 3, 2008 at
18:35:41 GMT
info register classloader
com.sun.jbi.framework.CustomClassLoader@1af5d23
a) this line
info using configuration
file:/C:/glassfish/domains/domain1/lib/aspects-filter.jar!/META-INF/aop.xml
info register aspect aspects.FilterAspect
debug weaving
'com.sun.encoder.MetaRef'
b) this line
...
debug weaving 'org.apache.xml.resolver.readers.OASISXMLCatalogReader'
debug weaving 'org.apache.xml.resolver.readers.SAXCatalogParser'
debug cannot weave 'javax.wsdl.factory.WSDLFactory'
debug cannot weave 'javax.wsdl.WSDLException'
debug cannot weave
'javax.wsdl.factory.WSDLFactory$1'
c) this line
Andy Clement wrote:
Hi,
I can't answer the question... but how to integrate ltw with appserver
<insert app server name here> comes up on the list now and
again. So I've created an FAQ entry for it. If anyone reading this
can help me flesh it out from the purely general advice it currently
includes (which Ramnivas wrote, thanks Ramnivas!), I will put it in
there right away.
Current FAQ entry:
http://www.eclipse.org/aspectj/doc/released/faq.php#q:ltwAppServers
Bug entry where anyone wishing to contribute can add
instructions/guidelines for an application server:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=248743
Andy.
2008/9/25
<andymorton@xxxxxxxxxxxxxx>
Hi.
I have a several applications deployed in an application
server (sun app server / glassfish) and have written several aspects to
hook into the current applications (for logging purposes).
I understand this is done via load time weaving.
However, I added the javaagent into the VM options, and it
resulted in my applications not starting up right.
I have exported my aspects as a jar, and want them to
become
active whenever I put them in a specific directory.
Do i put the aop.xml in this jar? Or does it sit somewhere
else??
Im quite confused about the whole deployment issue, but
believe that my aspects are working ok...
Can anyone point me in the appropriate direction?
Regards,
Andrew
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users