Hello Anggiat,
not quite sure whether you understood my problem completely as you talk
about two aspects. One called "/ConnectionCreatorAspect/" the other
"/SomeOtherAspect/". Me, I just have one. The other class implements the
code that has to be enhanced with the aspect where the connection
creation and closing has to be done. And the created connection object
has to be used by the non-aspect implementation. Here, the central
question is: how to use this connection object. Please take a look at
my sample code before.
When really a solution is available that prevents the implementation of
a ThreadLocal-based solution I would vote for that one.
Or am I wrong and I misunderstood you? It would be kind to help me
understanding you :-)
As I'm an owner of the "AspectJ in Action" book you can even tell me the
chapter you meant.
I'm looking forward to reading from you again.
Kind regards
Holger
Am 22.02.2015 um 10:02 schrieb Anggiat Barita:
The usage will be something like following. /ConnectionCreatorAspect
/becomes context holder for crosscutting concern objects.
/SomeOtherAspect /is your other aspect that needs to look up for
connection object.
/public aspect ConnectionCreatorAspect percflow(callPointCut()) {/
/ private Connection connection;/
//
/ pointcut callPointCut() : call(* *.foo(..) ); /
//
/ before( ) : callPointCut( ) && !within(ConnectionCreatorAspect +) { /
/ // create your connection here and set it to instance
variable of ConnectionCreatorAspect/
/ // Since this is percflow association you dun have to clean
up thread local explicitly as it's handled by aspectj behind the scene/
/ }/
/ public Connection getConnection() { return this.connection; } /
/}/
/public aspect SomeOtherAspect {/
/ before( ) : // some pointcuts { /
/ConnectionCreatorAspect.aspectOf().getConnection()/
/ }/
/}/
For more information about that, check out aspectj in action book that
explains well about this.
Regards,
Anggiat
On Sun, Feb 22, 2015 at 12:01 PM, Dave Brosius
<dbros...@mebigfatguy.com <mailto:dbros...@mebigfatguy.com>> wrote:
However you access them, the ThreadLocal variable should be
static, otherwise odd things occur when you have multiple
instances of the class holding the ThreadLocal.
You almost always want to to override the intialValue() method of
the ThreadLocal class.
On 02/21/2015 10:42 PM, Archie Cobbs wrote:
On Sat, Feb 21, 2015 at 6:33 PM, Holger King <holgerk...@gmx.net
<mailto:holgerk...@gmx.net>> wrote:
So, when using a ThreadLocal you would declare it as "public
static" to allow accessing the added connection object in the
target code, here the "FSIdmAdaptor"?
That would work. More commonly you make it private and provide
access via a static method e.g.
public static Connection getCurrentConnection()
throws IllegalStateException { // if no connection is set
in the current thread
For lots of examples look at Spring, e.g.,
TransactionAspectSupport
<http://grepcode.com/file/repo1.maven.org/maven2/org.springframework/spring-tx/4.1.3.RELEASE/org/springframework/transaction/interceptor/TransactionAspectSupport.java#TransactionAspectSupport>.
-Archie
--
Archie L. Cobbs
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org <mailto:aspectj-users@eclipse.org>
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org <mailto:aspectj-users@eclipse.org>
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users
_______________________________________________
aspectj-users mailing list
aspectj-users@eclipse.org
To change your delivery options, retrieve your password, or unsubscribe from
this list, visit
https://dev.eclipse.org/mailman/listinfo/aspectj-users