Chapter 1. Terminology

1.1. Overview

The section lists some basic terminology that will be used throughout this guide.

Aop

Aspect-Oriented Programming (AOP) is a new paradigm that allows you to organize and layer your software applications in ways that are impossible with traditional object-oriented approaches. Aspects allow you to transparently glue functionality together so that you can have a more layered design. AOP allows you to intercept any event in a Java program and trigger functionality based on those events.

JBossAop

JBossAop is an open-source Aop framework library developed by JBoss. It is 100% Java based and can be run either as a standalone or inside an application server environment. More details can be found at www.jboss.com.

Dynamic Aop

Dynamic Aop is a feature of JBossAop that provides a hook so that a caller can insert event interception on the POJO at runtime. PojoCache currently uses this feature to perform field level interception.

JGroups

JGroups is a reliable Java group messaging library that is open-source and LGPL. In addition to reliable messaging transport, it also performs group membership management. It has been a de facto replication layer used by numerous open-source projects for clustering purposes. It is also used by JBossCache for replication layer.

TreeCache

TreeCache is a component of JBossCache that is a plain cache system. That is, it stores a straight Java object reference and requires an object to be serializable to perform binary-wide replication. It is Java-based, in-memory, replicated, and persistent. PojoCache currently is a sub-class of TreeCache.

POJO

Plain old Java object.

Annotation

Annotation is a new feature in JDK5.0. It introduces metadata along side the Java code that can be accessed at runtime. PojoCache currently use both JDK1.4 and JDK50 annotation to support POJO instrumentation.

Prepare

Prepare is a keyword in JBossAop pointcut language used to specify which POJO needs to be instrumented. It appears in a jboss-aop.xml file. However, if you can use annotation to specify the POJO instrumentation, there is no need for a jboss-aop.xml listing. Note that When a POJO is declared properly either through the xml or annotation, we consider it "aspectized".

Instrumentation

Instrumentation is an Aop process that basically pre-processes (e.g., performing byte-code weaving) on the POJO. There are two modes: compile- or load-time. Compile-time weaving can be done with an Aop precompiler (aopc) while load-time is done to specify a special classloader in the run script. This step is necessary for an Aop system to intercept events that are interesting to users.