Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] detecting try blocks

Hi Nikolas,

I have designed and implemented Transactional Pointcuts (Transcuts) for AspectJ but it's currently implemented in the AspectBench Compiler. You can find examples as well as details about this model in here:


Sadat-Mohtasham, H. and Hoover, H. J. 2009. Transactional pointcuts: designation reification and advice of interrelated join points. In Proceedings of the Eighth international Conference on Generative Programming and Component Engineering(Denver, Colorado, USA, October 04 - 05, 2009). GPCE '09. ACM, New York, NY, 35-44. DOI= http://doi.acm.org/10.1145/1621607.1621615

In a nutshell, the idea is that, join points do not occur in isolation but are usually part of a bigger operation (e.g. a database transaction, file I/O, etc.). This proposed model allows designation, reification and advice of these interrelated join points. for example, consider this code:

IResource res = new SomeResource();
// Use the resource here
res.close();

You can write an exception handling aspect for the above piece of code without refactoring. The reason that this is possible in this new model is that a sequence of interrelated join points can be designated and treated as a join point. This extension is fully compatible with AspectJ and works with other constructs such as cflow and percflow, etc.

You can find an example on database transactions using this model in the paper. Please let me know if you have any questions on the current status of transcuts and specific usage scenarios.

Cheers,

--Hossein


On 7-Feb-10, at 9:04 AM, aspectj-users-request@xxxxxxxxxxx wrote:

Message: 3
Date: Sat, 6 Feb 2010 23:25:18 +0100 (CET)
From: Nikolas Nehmer <nnehmer@xxxxxxxxxxxxxxxxxxxx>
Subject: Re: [aspectj-users] detecting try blocks
To: aspectj-users@xxxxxxxxxxx
Message-ID:
<27032609.1265495119276.OPEN-XCHANGE.WebMail.tomcat@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>

Content-Type: text/plain; charset=us-ascii

Hi Andy,

thanks for your reply! Most likely my use case is far too specific. In
the context of my pdh studies I'm implementing rollback behaviour on the
application level. Among others, try scopes build transaction boundaries
in my approach. For the logging part, necessary to ensure rollback
functionality, the entry events and exit events from and to atomic
blocks (transaction boundary) have to be detected during runtime. As
most of my current logging component is based on aspectj it would've
been nice to smoothly integrate this idea as well. But for me it seems
as if I will have to use a bytecode manipulation framework such as ASM.

Cheers,
Nikolas


Back to the top