import sub.ExecutionMonitor; import sub.ObserverProtocol; public class TransactionTest { public static void main(String[] args) { } static Transaction theTransaction; private void assertCommitted() { theTransaction.getCount("method-execution", "commit"); } static aspect MonitorTest { declare parents: Transaction implements ExecutionMonitor.MonitoredItem; } } class Transaction { } aspect TransactionControl { void begin() { CommitObserver.aspectOf().add(this); } static aspect CommitObserver extends ObserverProtocol { declare parents: TransactionControl implements Observer; } }