Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] How to access "withincode" type

I presume you want the object of the class that implements "makeProfileDataBaseCall".  I'll call the interface that declares it "ProfileMaker", since I don't know what it's really called. Try this pointcut:

@Pointcut("call(* java.sql.Statement+.execute*(..)) && withincode(@com.xyz.Profiling * ..ProfileMaker+.*(..)) && target(profileMaker) && @annotation(profiling)")

void profilingSQLExecute(ProfileMaker profileMaker, com.xyz.Profiling profiling) {}

(I forgot what you called the pointcut method before, so I just made up a name). Note that you use "target()" and "@annotation" to bind the object and annotation, respectively, to variables declared in the method. These variables will then be available in the advice, so you can get the value of the annotation, etc.  The advice method would require the same argument signature.

Notice also that I used "..ProfileMaker+" to refer to any subclass (i.e., implementer) of the interface and I used ".." before the name, which is the package wildcard with arbitrarily-deep nesting.

HTH,
dean


On Jan 24, 2008, at 12:48 PM, Parmar, Dipak (IS Consultant) wrote:

Here is my pointcut definition

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

Here is my sample mathod

        @Profiling(type=ProfilingType.JDBC)

            public void makeProfileDataBaseCall() {

                        .............

                CallableStatement statement = connection.prepareCall("{ call PACKAGE.PROCEDURE(?) }");

                statement.execute();

                        ........................

            }

How I can get an instance of makeProfileDataBaseCall method and its annotation joinPoint.getSignature() gives the execute method but not makeProfileDataBaseCall method.

If this cant be possible, then is there a way to re-write the above pointcut that limit only JDBC type of profiling.

Thanks,

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




Back to the top