[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-dev] Themes for AspectJ 1.2

My top vote is performance and scalability. For performance, I see value in benchmarking and optimizing common scenarios like pertype for logging and deferred instantiation of tjp. For scalability, it's important to support large projects that use large numbers of aspects.
A close second would be IDE support: getting incremental compilation to be reliable in AJDT is very important. Eager parsing and refactoring support are also important (they will go a long way to ease adoption).
AspectJ support for Java 1.5 language features is going to be critical when Java 1.5 ships. Assuming that's next summer, then I think at least basic support will need to be in AspectJ 1.2; any thoughts on when 1.2 and 1.3 will ship?
Another possible theme would be extending the AspectJ language itself. There are a few features from 1.1 (like extensible pointcuts) that are worth considering in this category, but I think this theme will need to be a focus of a later release (after Java 1.5 features have been incorporated. We might consider adding more powerful declarations like a declare delegate and declare parameter to add parameters to methods. Other possibilities would include separating aspect interfaces from implementations and polymorphism in aspect roles for classes (like Caesar does), more powerful pointcuts (like pcflow), etc. Many of these features would require careful design that would be worth a research paper, which also suggests they aren't the best use of the AJ team's time.
Another possible theme is AspectJ language compatibility. Intellij is creating an alternative AspectJ parser, and even if they use ajc's back-end weaver, this raises the question of what's the correct behavior. At a minimum, it will be important to work with them to ensure compatibility. I don't think there's time for the 1.2, but the ideal solution would be writing a language spec. and a compatibility test.
Ron Bodkin
Chief Technology Officer
New Aspects of Security
m: (415) 509-2895
------------Original Message-------------
From: "Adrian Colyer" <adrian_colyer@xxxxxxxxxx>
To: aspectj-dev@xxxxxxxxxxx
Date: Wed, Oct-1-2003 9:25 AM
Subject: [aspectj-dev] Themes for AspectJ 1.2

Now that AspectJ 1.1.1 is out, it's time to turn our attention to 1.2.  This post is to start a discussion about possible themes and priorities for the 1.2 release. The eventual plan will be influenced by AspectJ's users, it's developers, and of course which items contributors will sign up to implement - so anything we discuss here should not be treated as a plan commitment at this stage. I'm including all project tasks, not just those that might involve writing code.

With that said, here are some candidate themes to start the discussion (not an ordered list):

* AspectJ for the Enterprise

This theme could include adding (and developing) material for the website / docs / ... explaining how to use AspectJ with various app servers and J2EE technologies. A classloader would come under this category too, and perhaps even a set of samples or an aspect library for working with AspectJ in J2EE.

* Preparation for Java 1.5

Including consideration of the impact of generics and metadata on the language.

* Performance and scalability

Memory usage (across AspectJ and AJDT), compile time, weave time, runtime performance. This theme might for example build a benchmark suite and then use it to optimise the compiler and its output. Supporting pertype could fall into this category - as it's needed for some common logging idioms, as could looking into the possibility of creating thisJoinPoint objects lazily.

* Enhanced IDE support

Work in the ajde components (and possibly below) to allow deeper IDE integration (e.g. to support eager outline views, code formatting, structure model operations etc.). JSR 45 support. AJDT needs this...

* Clean-up : working through P3's etc. that have built up during release cycle

We have a reasonable list now that we're going to have to work through. This task will also include things like fixing up the failing BCWeaver tests

* Miscellaneous (these things don't fit neatly in any of the above yet)

There are many items carried over from 1.1 planning for example, that we should consider (some may fit into the above themes). I'll dig these out and post separately. One item I would like to consider is getting context information into declare warning / error messages (we had a prototype implementation here in Hursley a while back but never got to discussing the rights and wrongs on the list as there were other priorities at the time). Wes has begun work on some general purpose samples and we should continue that.... there's the possibility of a general purpose aspect library in time.

I'd like to begin our planning by focusing on what the right themes are to go after (please cast your votes, and add your own suggestions too) on the dev list, then we can go to the users list once we have a first pass in place. Then we have to start fleshing out what the individual items we want to attack in each category are, and figuring out who wants to work on what.

-- Adrian