Month: November 2011

Episode 8. What’s your Aspect?

In this episode we go over Aspects (and AspectJ), what really is, and when to use them. It turns out, that there is nothing misterious about them! We also cover how to set-up Aspects for J2SE so you can start using them immediately!

Questions, feedback or comments!comments@javapubhouse.com

VM Parameter
-javaagent:dep/aspectjweaver.jar

Example Aspect

@Aspect

public class OrderAspect {

    @Before("execution(* *.*(Order))") // must qualify
    public void anyCall() {
        System.out.println("Was called from anywhere");
    }
  }

Example aop.xml file

          <aspectj>
            <aspects>
              <aspect name="OrderAspect"/>
            </aspects>
            <weaver options="-verbose -showWeaveInfo">
            </weaver>
          </aspectj>

Example Folder Structure

src
 |
 |-META-INF
    |
    |-aop.xml

References:

http://www.eclipse.org/aspectj/doc/released/adk15notebook/ataspectj-pcadvice.html

http://blog.espenberntsen.net/2010/03/20/aspectj-cheat-sheet/

http://www.eclipse.org/aspectj/doc/next/quick5.pdf

(Using aspects with annotations)
http://stackoverflow.com/questions/2011089/aspectj-pointcut-for-all-methods-of-a-class-with-specific-annotation

Episode 7. Threads, Priorities, and Swing’s Golden Rule

In this episode we talk about Threads and Threading, the difference between Daemon and User Threads, and why changing priorities is not for the weak of heart. Also we cover Swing’s golden Threading rule (with the Event Dispatching Thread). If you ever typed new Thread(), or if you heard to be careful about Swing and Threading, this episode is for you!

 

Episode 6. Observing the Observers, a talk about patterns, observer and listeners!

In this week’s podcast we talk about Design Patterns (and the Grand Dads of the Software Patterns, the Gang-of-four), and dive into our first design pattern (of many), the Observer pattern. We discussed how to implemented (within Java), and went to describe its use in Java Swing, and why anonymous inner classes for Listeners doesn’t create memory leaks (most of the time anyways). In all a great introduction to a first pattern (see what they are all about!)