Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] How to write pointcut

Hmm. I just noticed you're also missing a "*." in the within() for the type:

@Pointcut("call(* java.sql.Statement+.execute*(..)) && within(@com.xyz.Profiling * *.*(..)) ")

I don't know if that will be enough to make it work. The examples I have are actually for "execution(...)" and "call(...)" with pointcuts inside.

dean

On Jan 23, 2008, at 3:44 PM, Parmar, Dipak (IS Consultant) wrote:

Doesn’t work.
 
This will work if Profiling is a class level annotation.  In my case, it’s a method level annotation.
 
 

From: aspectj-users-bounces@xxxxxxxxxxx [mailto:aspectj-users-bounces@xxxxxxxxxxx] On Behalf Of Dean Wampler
Sent: Wednesday, January 23, 2008 4:27 PM
To: aspectj-users@xxxxxxxxxxx
Subject: Re: [aspectj-users] How to write pointcut
 
I can never remember the correct syntax, so I looked at one of my aspects that uses annotations ;)
 
I think you want to remove the '@' from the "within", i.e.,
 
@Pointcut("call(* java.sql.Statement+.execute*(..)) && within(@com.xyz.Profiling * *(..)) ")
 
 
Hope this helps!
 
dean
 
On Jan 23, 2008, at 3:11 PM, Parmar, Dipak (IS Consultant) wrote:


I’m writing an aspect to major a performance of a stored-procedure call.  I would like my aspect to get called when the method has “Profiling” aspect.  I tried various approach but it can’t seem to make it work. 
 
Here is the snippet of code:
 
public class JDBCProfilingAspect {
 
            @Profiling 
            public void makeProfileDataBaseCall() {
 
                        .............
                CallableStatement statement = connection.prepareCall("{ call PACKAGE.PROCEDURE(?) }");
                statement.execute();
                        ........................
            }
 
            public void makeDataBaseCall() {
 
                        .............
                CallableStatement statement = connection.prepareCall("{ call PACKAGE.PROCEDURE(?) }");
                statement.execute();
                        ........................
            }
 
}
 
// Doesn’t work
@Pointcut("call(* java.sql.Statement+.execute*(..)) && @within(@com.xyz.Profiling * *(..)) ")
public void profileJDBCExecute() {
}
 
// Doesn’t work
@Pointcut("call(* java.sql.Statement+.execute*(..)) && @annotation(com.xyz.Profiling * *(..)) ")
public void profileJDBCExecute() {
}
 
 
DP.
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users
 
Dean Wampler, Ph.D.
dean at objectmentor.com
See also:
http://aquarium.rubyforge.org     AOP for Ruby
http://www.contract4j.org         Design by Contract for Java5
 
 
 
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Dean Wampler, Ph.D.
dean at objectmentor.com
See also:
http://aquarium.rubyforge.org     AOP for Ruby
http://www.contract4j.org         Design by Contract for Java5




Back to the top