AspectJ 5 final has been released.


News: AspectJ 5 final has been released.

  1. AspectJ 5 final has been released. (19 messages)

    The release of AspectJ 5 final has been announced. This is probably the most significant milestone in the history of AOP (so far). Finally the AOP community has a standardized language and toolkit, a unified platform that can allow it to move in the same direction, both in terms of usage, research and adoption - instead of fighting over semantics, APIs and user base.

    This also means that the merger with AspectWerkz is complete, almost exactly one year after it was announced. Might sound like a long time, but was a huge task to take on, not only the merger with AspectWerkz but full Java 5 support, including generics.

    From Adrian Colyer's blog announcement:
    AspectJ 5 breaks new ground for the world of AOP in a number of areas including (afaik - please correct me if this is not the case):
       * The first AOP language to fully support Java 5
       * The first implementation of generic aspects (using type
    parameters in pointcuts, advice, and ITDs in addition to regular generics features)
       * The first aspect language to provide a full reflection API (AjTypeSystem)
       * The first aspect language to offer code-style, annotation-style (@AspectJ) and XML based configuration with the same weaver and semantics
    On top of this the release includes support for AspectWerkz style load-time weaving and excellent IDE support (Eclipse AJDT) with among other features a cross-cutting diff tool.

    Spring is one of the first to embrace AspectJ 5 and the upcoming Spring 2.0 will have native support for running @AspectJ aspects, configuring Spring AOP using the AspectJ pointcut language, dependency injection of aspects along with many other cool features.

    You can choose to download either the stand alone compiler or the AJDT IDE toolkit (with an embedded compiler).

    Threaded Messages (19)

  2. Hurray!!![ Go to top ]

    Now let's hope ajdt for aj5 will go final soon
  3. SUBJ
  4. ajdt releases[ Go to top ]

    Now let's hope ajdt for aj5 will go final soon
    Look at
    There are releases as for ajdt 1.2.1 (based on eclipse 3.0) as for ajdt 1.3 (on eclipse 3.1) from December 20, 2005.
  5. AspectJ 5 final has been released.[ Go to top ]

    Congratulations guys, thanks for all of your great work!
  6. AspectJ 5 final has been released.[ Go to top ]

    An amazing success story of the open source community. Congratulations.
  7. Congrats![ Go to top ]

    Thanks for this Christmas gift! :-) Well done guys!!!

    Do you have any more info on tool support? My view (and experience) is that AOP is only really useful in non-trivial apps if you have tool support for visualization. Eclipse is great, but are there any standalones too for us who are hooked on other IDE's? Something like Javadoc++ for example?
  8. Congrats![ Go to top ]

    Thanks Rickard.

    There is a lot of new stuff in the latest AJDT, cross-cutting ref markers for annotation defined aspects, cross-cutting diff tool (thanks for the idea :-)), aspect visualizer (not new but good stuff) etc.

    There is (and has been for the last years) a JavaDoc tool called ajdoc. It is part of the distribution.

    If you want to discuss things in detail, including what can be done for other ideas etc., talk to Matt Chapman (leading the AJDT effort) or Mik Kersten (original implementor of AJ tools including ajdoc etc.).
  9. Congrats![ Go to top ]

    sorry, but I of course meant:

    ...can be done for other *IDEs*...

  10. Congrats![ Go to top ]

    cross-cutting diff tool (thanks for the idea :-))
    I'm happy to see my ranting about it had the desired effect >:-) Excellent!
    There is (and has been for the last years) a JavaDoc tool called ajdoc. It is part of the distribution.
    Ah, then all is well. Pardon my ignorance.
    If you want to discuss things in detail, including what can be done for other ideas etc., talk to Matt Chapman (leading the AJDT effort) or Mik Kersten (original implementor of AJ tools including ajdoc etc.).
    Well, with all of the above in place I'm basically happy.

    Again, well done guys.
  11. Congratulations![ Go to top ]

    Well done to all involved! Great job!!
  12. AspectJ 5 final has been released.[ Go to top ]

    Jonas, I wonder if we (you, myself, Adrian, Andy, Mik, Wes, and Erik) have been the first in the OSS world to actually merge with our peers that had been both friends and competitors for more than 2 years.

    I see so many disparate voices in the OSS world these days... There is more OSS J2EE app server than commercial one - isn'it ?
    Going thru a merger means going beyond personnal hard feelings of sharing the project lead, going beyond never ending architectural discussion but focussing on uses cases and community.

    I wish as much success to the Struts/Webwork merger - and I can now certify this was really a challenge to get it done!
    Farewell my AspectWerkz!
  13. AspectJ 5 final has been released.[ Go to top ]

    AspectJ, AJDT, and (former) AspectWerkz team,

    Indeed, this must be a proud moment for you guys. Instead of fighting the "ours is better that yours" war, you took a bold decision to merge your strengths and worked together to create the best AOP implementation ever!

    This release is, without a doubt, the most significant milestone in the history of AOP.

  14. Outstanding Release[ Go to top ]

    I have to say that AspectJ 5 is a very slick release. But prehaps more impressive is the new AJDT. It still has a few worts and wrinkles, but compared to other IDE plugins for AOP development, nothing can compare. The plugin shows where advice is being applied if you're using code-style or annotation-style development. Last I checked, JBoss IDE only works off of the jboss-aop.xml file. If you develop JBoss AOP aspects using annotions, you don't get advice markers. Now only if JBoss and Eclipse could consolidate their AOP implementions :) Even if not, AspectJ 5 is shaping up to be the future of AOP on the Java platform.

  15. AspectJ or Spring AOP[ Go to top ]

    Being new to Aspects, I would like to understand the pros of using AspectJ over Spring AOP. I am currently using Spring as a part of my software stack. I am trying to determine if there are enough reasons to introduce AspectJ.

    Thanks for your advise
  16. AspectJ or Spring AOP[ Go to top ]

    AspectJ is full featured aop framework for java. Spring AOP is simple enouph intercepting framework using proxies.
    If you don't plan to program in AOP style, but want aop services to be provided, you can use out of the box Spring AOP with already implemented interceptors for transactions, security or others. If you wanna dive deeply in AOP, aspectJ is choise.
    But.. wait.. soon many spring's out-of-the-box aop services will be implemented as Aj aspects, and spring's own AOP framework will receive powerfull AJ's pointcuts definitions... Spring and AJ will definately complement each other in near future...
  17. AspectJ or Spring AOP[ Go to top ]

    The strategy for Spring AOP and AspectJ is to make them work together as seamlessly as possible, making it easy to use just as much or as little AOP as your application needs. I wrote a summary of the integration and what we've been doing in Spring AOP for 2.0 a couple of weeks ago here (scroll down past the AspectJ 5 RC1 subheading and you'll see the "Spring 2.0 M1" heading).

    Here's the closing paragraph from that piece:

    Spring AOP as a framework is not growing beyond its original boundaries. Instead we've simplified the configuration and enabled the use of the AspectJ pointcut language and even @AspectJ aspects. Instead of replacing Spring AOP with AspectJ, or growing the capabilities of Spring AOP beyond its current bounds, we believe in providing a seamless roadmap from using the out-of-the-box Spring aspects (such as the transaction management support), thru writing your own Spring aspects and advisors, and onto AspectJ aspects, without any jarring discontinuities. Thus you can use as little or as much of the capabilities as you need, and as your requirements change there will be a solution available to support you.
  18. Certification[ Go to top ]

    Is it possible to get AspectJ certification for WebSphere or WebLogic - that we can run Aspected software on them?
    Congratulation to team for their huge effort. Best gift for christmas. I will have full week to play with it.
  19. Certification[ Go to top ]

    There are two distinct ways to run AspectJ-based applications on an appserver.

    The first way is simply to compile your application into regular .class files using the AspectJ compiler (or use the weaver to link aspects with your application jars, producing a new set of woven jars). All the app server sees here is a regular application with regular .class files - nothing to certify! In fact, there's less going on here than if you use one of the many tools (such as Hibernate for example) that now do on-the-fly bytecode generation using libraries such as cglib.

    The second way is to use load-time weaving. Here you configure the app server so that it weaves one or more aspect libraries with your application as it is loaded into the server. Since this changes the app servers behaviour with respect to application loading certification for using this technique in production can become an issue. Note that AspectJ is still using e.g. the standard Java 5 agent interface so if a vendor allows use of the -javaagent flag, they are allowing AspectJ to be used in this way. For the time being, my recommendation is to use load-time weaving as a convenience during iterative development and testing, but to use offline weaving and just deploy the woven app. when going into production. This is as much a statement about the startup performance and increased memory usage that is inevitable with LTW (though in 1.5.1, we'll be making some significant optimisations in that area) as it is about certification.
  20. Accepted uses of aspects?[ Go to top ]

    From experience Aspects are pretty powerful (you can do almost anything with them). Before we go mad and use them for things better done in 'ordinary' Java, what are their generally accepted uses as part of an Enterprise Java architecture?

    I'm thinking of areas where the cross-cutting is especially beneficial, such as:

    - Security
    - Profiling tools
    - Logging
    - Introducing new functionality to code where you do not have access to the source (for legal or technical reasons)

    Any other ideas?