Introduction to Aspect-Oriented Programming
Subject:   crosscutting, not static+ or just interception
Date:   2004-01-16 03:59:23
From:   anonymous2
Response to: crosscutting, not static+ or just interception

I take you point that dynamic modification is not the sole purpose for AOP, but it's a perspective that I have used to explain the benefits of AOP to many people. I have found that people can understand it quite easily which helps to reduce their learning curve.

When I first tried AspectJ, the fact that point-cuts etc. are defined in .java files meant that eclipse would show the new keywords as errors in the Java perspective. What I really liked about Aspectwerkz is that the advice is java compatible, and in fact the secondary weaving step is not needed when running in on-line mode.

I think for a developer looking to integrate AOP into there development process Aspectwerkz allows for a gentle introduction. Whether they continue to use it having mastered the concepts is entirely up to them. Jumping head-long into AOP with AspectJ does have a steeper learning curve which could be enough to put some people off the concept.

AOP has a bright future, though, and I think we'll see its popularity grow very quickly. Hopefully people can use this (deliberately simple) article to get going, or at least commit to future researching the topic.


Full Threads Newest First

Showing messages 1 through 3 of 3.

  • crosscutting, not static+ or just interception
    2004-01-17 03:54:03  anonymous2 [View]

    There's an Eclipse plugin for AspectJ--it's part of the Eclipse project now. However, it is good not to need a new language.

    AspectWerkz isn't the only Java-based solution. You don't mention Spring ( which is a bit similar to Nanning (whicn you do mention) but more powerful (before, after, throws advice as well as interceptors). And with Spring AOP is integrated with services like transaction management.
    • crosscutting, not static+ or just interception
      2004-01-19 03:33:37  anonymous2 [View]

      "to mess with system class loader reweaving as AspectWerkz does".
      Note that the class load time weaving (online mode) will be standardized in Java 1.5 JSR 163.

      Online mode adress different use-cases. I will not ask a team to compile a whole weblogic distrib to do some instrumentation. Instead, I would plug the weaver in WebLogic and all my team members work will be unchanged. Online mode can provide the backend for AOP middleware. With offline compilation, you cannot adress the same needs. AspectWerkz just provide both.
      With the AspectWerkz JRockit module, this is not mess, this is just use of BEA API, as it will be with Java 1.5.

      "AspectJ doesn't offer examples of load-time weaving"
      Wrong. BEA has released "AspectSystem" extension that do class load time weaving with AspectJ on a weblogic 8.1

      Please also note that the class load time weaving has been a research area in AOP for several years already. The error you pointed out regarding bad pattern etc can be catched in QA, at aspect compilation phase (metadata JSR-163 style defined aspect - see AspectWerkz model 2), or even with tool integration.

      Alex @ AspectWerkz
    • AspectJ
      2005-01-19 03:18:45  Pallavi_Lodaya [View]

      I have my jars ready. Now if I want to add aspect in that, will I require the source code or i can apply ajc on those jars with my new .aj class?

      Pallavi Lodaya