Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Simplest way to advice around java.sql.Statement.executeQuery?

In case of JDBC objects (statements, connection etc.), if you use an execution pointcut such as:
execution(* java.sql.Statement.*(..))
and
you weave in the JDBC driver (the jar), you should be good to go.

We use this approach in Spring Insight (http://www.springsource.com/products/tcserver/devedition). There we use load-time weaving, but even if you use build-time weaving, as long as you manage to weave in JDBC driver jars, it should work for you.

-Ramnivas

On Mon, Feb 15, 2010 at 8:37 AM, Andy Clement <andrew.clement@xxxxxxxxx> wrote:
The key thing to understand is who loads that class.  Given that it
has a java prefix, it may or may not be loaded by a classloader
against which a weaver can be attached.  Simplest way would be to
create the aspect you want, define the aop.xml (include the setting to
weave java prefixed packages ( <weaver
options="-Xset:weaveJavaPackages=true" ), perhaps set the options for
debug, verbose and showWeaveInfo, then launch the VM with the
aspectjweaver agent attached.  You will discover which classloaders
are getting a weaver instance and a debug line will be produced if the
Statement class is ever passed to AspectJ.  If it is then the
showWeaveInfo will tell you whether your advice matched.

I know you mentioned you wanted to load time weave, but if it isn't
loaded by a classloader you can hook into the simplest thing is a
quick compile time weave of the jar containing it (you don't need the
source for Statement or anything)

Andy

On 14 February 2010 15:18, Aldo Bucchi <aldo.bucchi@xxxxxxxxx> wrote:
> Hi,
>
> What's the simplest and less invasive way to advice around
> java.sql.Statement.executeQuery using runtime weaving?
>
> ( I mention that specific class to clearly illustrate the general
> case: A method on a 3rd party jar over which I have no control ).
>
> 1. I am not restricted to AspectJ, but I thought I'd start looking here
> 2. I am looking for a quick one-off that does not impose too many
> requirements, configurations and dependecies as the target project is
> already using complex compilation phases to integrate Scala and some
> DSLs PLUS we're using Maven. This is why RTW sounds like the right
> choice so as to avoid falling into spaghettiland
>
> Ideally, something like Spring's annotation-based RTW but w/o the limitations.
>
> Thanks!
> A
>
> --
> Aldo Bucchi
> skype:aldo.bucchi
> http://www.univrz.com/
> http://aldobucchi.com/
>
> PRIVILEGED AND CONFIDENTIAL INFORMATION
> This message is only for the use of the individual or entity to which it is
> addressed and may contain information that is privileged and confidential. If
> you are not the intended recipient, please do not distribute or copy this
> communication, by e-mail or otherwise. Instead, please notify us immediately by
> return e-mail.
> _______________________________________________
> aspectj-users mailing list
> aspectj-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/aspectj-users
>
_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


Back to the top