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

Allowing multiple weavings would be good to include -- especially if app servers/infrastructure components and libraries are starting to use aspects. How can we avoid the conflicts of already woven code? As a very simple implementation, could we just specify the prefix used for generated code/bytes. I'm assuming all state/methods etc have identifiers of the form ajc$myAspectBit or similar, and that a woven program has a valid Java representation. If we could change the prefix to com_foo_ajc, ie define our own namespace, is there any reason woven code could not be re-woven with a different namespace? Does woven code still have the same join points as unwoven? (I think the answer is woven is a super-set).


                      "Ron Bodkin"                                                                                                                                      
                      <rbodkin@newaspect        To:       aspectj-dev@xxxxxxxxxxx                                                                                       
                      s.com>                    cc:                                                                                                                     
                      Sent by:                  Subject:  Re: [aspectj-dev] Themes for AspectJ 1.2                                                                      
                      01/10/2003 22:56                                                                                                                                  
                      Please respond to                                                                                                                                 

I would add ajdoc into the proposed usability category. In fact, IDE support really belongs in this bigger category.

Another important item for usability is "eating our own dog food"; using AspectJ more in developing AspectJ. And using AJDT in developing AJDT. I would suggest starting with using AJDT to develop AJDT (i.e., using an AspectJ nature even with limited aspects, and adding aspects over time). This will indirectly benefit all the other themes too.

Another feature request that probably goes under usability is to output woven source instead of bytecode. Decompilers like jad do a bad job with AspectJ-woven sources, and generating sources is occasionally important for build integration (e.g., with Clover?) and for users to troubleshoot problems. I don't think this one is a priority, but it ought to be "on the table."

I don't think supporting researchers or VARs should be emphases for 1.2; I think performance, scalability, and usability for projects using AspectJ in production should be.

Ron Bodkin
Chief Technology Officer
New Aspects of Security
m: (415) 509-2895

> ------------Original Message-------------
> From: Wes Isberg <wes@xxxxxxxxxxxxxx>
> To: aspectj-dev@xxxxxxxxxxx
> Date: Wed, Oct-1-2003 12:35 PM
> Subject: Re: [aspectj-dev] Themes for AspectJ 1.2
> Other possible themes, some with new features, others
> adopting known feature requests...
> * Usability
>    - speed/performance here
>    - better error messages
>    - docs/samples here
>    - simplified language: enforce subset of most-used,
>      most-understood features - training wheels?
> * Reusability
>    - fix limitations and holes in developing
>      and maintaining reusable aspects
> * Technology toolkit
> - for static analysis
>    - permit developers to plug in components or define
>      staticly-executable advice to better integrate
>      static and dynamic verification.  See related AOSD 2003:
>      "A case for staticly-executable advice: checking the
>       law of Demeter with AspectJ"
> - for VAR's
>    - many tools could be implemented using an embedded
>      weaver, some AspectJ code, and perhaps some
>      configuration:
>      - the JBoss framework
>      - architectural constraint checking
>      - automated test tools
>      We could make this easier through another component
>      like AJDE for such integrations.
> - integration with other AOP tools and toolkits
>    - running JBoss interceptors
>    - the concern manipulation framework
> - more modular design
>    - is it possible to move towards something like JMangler's
>      approach, to make it easier to experiment with new
>      language features?
> * Increasing capacity
>    (more about management, but, hey, it involves 1.2)
>    - Right now (IDE, compiler, weaver) resolves mainly to
>      (Mik, Jim, Erik).  It would be nice to free them
>      entirely from primary bug-fixing duties.  We could
>      enlist a team for the 1.1.X branch and divide the work
>      accordingly.  The 1.1.X team would work with the 1.2
>      team to integrate 1.1.X fixes into 1.2, and would thus
>      train up for maintaining 1.2.  This avoids the 1.2
>      team being pulled back to fix pressing 1.1.X bugs
>      and important bugs going unfixed for months.
>      (However, the set of bugs that can be fixed without major
>      changes might be small.)
> These raise the question of what we want most from 1.2:
> - to meet the current needs of current users
> - to increase the number and skill of AspectJ users
> - to answer challenges from alternatives
> - standardization, de facto or de jure
> - to reach the enterprise market
> - to reach more researchers
> - to advance the art in AOP
> Depending on our focus, we attract different kinds of
> interest and contributors.  Some features, e.g.,
> distributed aspects and enhanced IDE support,
> nicely serve many goals.
> Wes
> Adrian Colyer wrote:
> > 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
> > Adrian_Colyer@xxxxxxxxxx
> _______________________________________________
> aspectj-dev mailing list
> aspectj-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/aspectj-dev
aspectj-dev mailing list


This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.