Welcome to minuteAspects

minuteAspect is a collection of reusable aspects based on AspectJ.

This is a subproject of minuteTools, but can be deployed independently.

Download

Download the current version of minuteAspects.

Features and usage examples

Annotation-based bound property support for JavaBeans

The aspect BoundPropertySupport together with its support classes enables annotation-based implementation of the bound property feature of JavaBeans.

To make all properties of a JavaBean class bound properties, you only have to apply the annotation SupportBoundProperties on the repective JavaBean. E.g.:

  @SupportBoundProperties
  public class SampleBean {
  
    private Float  amount;
    
    public Float getAmount() {
      return this.amount;
    }

    public void setAmount(Float amount) {
      this.amount = amount;
    }
    
    // ... some more fields, getters and setters
  }

Now you can register a listener for changes of any or all properties of your JavaBean, e.g.:

    // ...   
    ((BoundPropertyObservable) sampleBean).addPropertyChangeListener(generalChangeListener);
    ((BoundPropertyObservable) sampleBean).addPropertyChangeListener("Amount",amountChangeListener);
    // ...

For a working example, see the unit test classes in package com/minutefforts/aspects/property/support.

Excluding a property from the property change support

Sometimes you want to explicitly exclude a property from the property change support (e.g. because this getter/setter pair is some implementation detail and not part of the intended JavaBean interface). You can do this by using an annotation on the setter of the property:

   
  // ...
   
  private String internalValue; 
   
  @UnboundProperty
  public void setInternalValue(String internalValue) {
  
    this.internalValue = internalValue;
  }
  
  // ...

Deploying minuteAspect

Depending on the features you plan to use, you only need to include the librarie's JAR file minuteAspect.jar in your project plus a recent version of the AspectJ runtime library.

Feedback is welcome

Any feedback is welcome - questions, critique, praise and suggestions alike. :-)

Sent email to achim[at]minutefforts.com.