Dipak,

Since the @Profiling annotation is on the caller method (i.e. not on the
call join point itself), you will need the following pointcut:
@Pointcut("call(* java.sql.Statement+.execute*(..)) && withincode(@
com.xyz.Profiling * *(..)) && @withincode(profiling)")
void profilingSQLExecute(com.xyz.Profiling profiling) {}

Even the following pointcut should work:
@Pointcut("call(* java.sql.Statement+.execute*(..)) &&
@withincode(profiling)")
void profilingSQLExecute(com.xyz.Profiling profiling) {}


-Ramnivas

On Jan 24, 2008 4:02 PM, Parmar, Dipak (IS Consultant) <
[EMAIL PROTECTED]> wrote:

>  Thanks Dean.
>
>
>
> With your suggested pointcut definition, I get a compilation error -- name
> pattern expected.
>
>
>
> I don't want the object of the class, what I want is an instance of the
> Profiling annotation.  I have tried the below but didn't execute my
> Advice.
>
>
>
> @Pointcut("call(* java.sql.Statement+.execute*(..)) && withincode(@
> com.xyz.Profiling * *(..)) && @annotation(profiling)")void
> profilingSQLExecute(com.xyz.Profiling profiling) {}
>
> Dipak
>
>
>  ------------------------------
>
> *From:* [EMAIL PROTECTED] [mailto:
> [EMAIL PROTECTED] *On Behalf Of *Dean Wampler
> *Sent:* Thursday, January 24, 2008 3:11 PM
> *To:* [email protected]
> *Subject:* 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.Profilingprofiling) {}
>
> (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 can't 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
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
>
> Dean Wampler, Ph.D.
>
> dean at objectmentor.com
>
> http://www.objectmentor.com
>
> See also:
>
> http://www.aspectprogramming.com  AOP advocacy site
>
> http://aquarium.rubyforge.org     AOP for Ruby
>
> http://www.contract4j.org         Design by Contract for Java5
>
>
>
>
>
>
>
> _______________________________________________
> aspectj-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
>
_______________________________________________
aspectj-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/aspectj-users

Reply via email to