Hello,
I am currently playing around with JBoss AOP, but I can't seem to make my
pointcuts work.
This is the xml file:
| <aop>
| <aspect class="main.Aspect" />
| <bind pointcut="execution(void
$instanceof{java.io.ObjectOutput}->writeObject($instanceof{java.lang.Object}))">
| <around aspect="main.Aspect" name="secureWrite" />
| </bind>
| <bind pointcut="execution($instanceof{java.lang.Object}
$instanceof{java.io.ObjectInput}->readObject())">
| <around aspect="main.Aspect" name="secureRead" />
| </bind>
| </aop>
|
My Aspect class is this:
| package main;
|
| import org.jboss.aop.joinpoint.MethodInvocation;
|
| public class Aspect {
| private final SecureCommunication secure;
|
| public Aspect() {
| secure = new SecureCommunicationRSA();
| }
|
| public Object secureWrite(MethodInvocation invocation) throws Throwable
{
| System.out.println("Writing secure");
| Object[] args = invocation.getArguments();
| for (int i = 0; i < args.length; i++) {
| args = secure.encrypt(args);
| }
| return invocation.invokeNext();
| }
|
| public Object secureRead(MethodInvocation invocation) throws Throwable {
| System.out.println("Reading secure");
| return secure.decrypt(invocation.invokeNext());
| }
| }
|
And the class I want to instrument is this:
package main;
|
| import java.io.File;
| import java.io.FileInputStream;
| import java.io.FileOutputStream;
| import java.io.IOException;
| import java.io.ObjectInput;
| import java.io.ObjectInputStream;
| import java.io.ObjectOutput;
| import java.io.ObjectOutputStream;
|
| public class Main {
|
| /**
| * @param args
| */
| public static void main(String[] args) throws IOException,
| ClassNotFoundException {
| ObjectOutput out = new ObjectOutputStream(new FileOutputStream(
| new File("test")));
| out.writeObject("this");
| out.writeObject("is");
| out.writeObject("a test");
| out.close();
|
| ObjectInput in = new ObjectInputStream(new FileInputStream(new
File(
| "test")));
| System.out.println(in.readObject());
| System.out.println(in.readObject());
| System.out.println(in.readObject());
|
| }
|
| }
|
When I try to apply the aspects, I get the following message
anonymous wrote :
| [aop-debug] org.jboss.aop.instrument.Instrumentor trying to transform
main.Main
| [aop-debug] org.jboss.aop.instrument.CallerTransformer There are no caller
pointcuts!
| [aop-debug] org.jboss.aop.instrument.JoinpointSimpleClassifier
javassist.ctmet...@44a4fe33[public static main ([Ljava/lang/String;)V] matches
no pointcuts
| [aop-debug] org.jboss.aop.instrument.JoinpointSimpleClassifier
javassist.ctconstruc...@176e552[public Main ()V] matches no pointcuts
| [aop-debug] org.jboss.aop.instrument.Instrumentor was main.Main converted:
false
| [no comp needed] /home/slv/Desktop/EncryptionTest/classes/main/Main.class
|
Can you please help me? I tried so many things and I can't make it work.
Thank you,
Silviu
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4203960#4203960
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4203960
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user