@Override public int compare(ObserverMethod<? super T> o1, ObserverMethod<? super T> o2) { // using descending order since we only need to ensure that BEFORE_COMPLETION precedes AFTER_COMPLETION return o2.getTransactionPhase().toString().compareTo(o1.getTransactionPhase().toString()); } });
public TransactionPhase getTransactionPhase() { return delegate().getTransactionPhase(); }
public TransactionPhase getTransactionPhase() { return delegate().getTransactionPhase(); }
@Test @SpecAssertion(section = OBSERVER_METHOD, id = "e") public void testGetTransactionPhaseOnObserverMethod() { assertEquals(getCurrentManager().resolveObserverMethods(new StockPrice()).iterator().next().getTransactionPhase(), TransactionPhase.IN_PROGRESS); assertEquals(getCurrentManager().resolveObserverMethods(new DisobedientDog()).iterator().next().getTransactionPhase(), TransactionPhase.BEFORE_COMPLETION); assertEquals(getCurrentManager().resolveObserverMethods(new ShowDog()).iterator().next().getTransactionPhase(), TransactionPhase.AFTER_COMPLETION); assertEquals(getCurrentManager().resolveObserverMethods(new SmallDog()).iterator().next().getTransactionPhase(), TransactionPhase.AFTER_FAILURE); assertEquals(getCurrentManager().resolveObserverMethods(new LargeDog()).iterator().next().getTransactionPhase(), TransactionPhase.AFTER_SUCCESS); }
@Test @SpecAssertions({ @SpecAssertion(section = OBSERVER_METHOD_CONFIGURATOR, id = "be"), @SpecAssertion(section = OBSERVER_METHOD_CONFIGURATOR, id = "bf") }) public void setReceptionAndTransactionPhase() { Set<ObserverMethod<? super Orange>> orangeEventObservers = getCurrentManager() .resolveObserverMethods(new Orange(), Any.Literal.INSTANCE, Delicious.DeliciousLiteral.INSTANCE); assertEquals(orangeEventObservers.size(), 1); assertEquals(orangeEventObservers.iterator().next().getReception(), Reception.IF_EXISTS); assertEquals(orangeEventObservers.iterator().next().getTransactionPhase(), TransactionPhase.AFTER_SUCCESS); assertEquals(orangeEventObservers.iterator().next().getObservedQualifiers(), Collections.singleton(Delicious.DeliciousLiteral.INSTANCE)); }
/** * Defers an event for processing in a later phase of the current * transaction. * * @param metadata The event object */ private <T> void deferNotification(T event, final EventMetadata metadata, final ObserverMethod<? super T> observer, final List<DeferredEventNotification<?>> notifications) { TransactionPhase transactionPhase = observer.getTransactionPhase(); boolean before = transactionPhase.equals(TransactionPhase.BEFORE_COMPLETION); Status status = Status.valueOf(transactionPhase); notifications.add(new DeferredEventNotification<T>(contextId, event, metadata, observer, currentEventMetadata, status, before)); }
@Test(groups = { "events" }) @SpecAssertion(section = "11.1.3", id = "e") public void testGetTransactionPhaseOnObserverMethod() { assert getCurrentManager().resolveObserverMethods(new StockPrice()).iterator().next().getTransactionPhase().equals(TransactionPhase.IN_PROGRESS); assert getCurrentManager().resolveObserverMethods(new DisobedientDog()).iterator().next().getTransactionPhase().equals(TransactionPhase.BEFORE_COMPLETION); assert getCurrentManager().resolveObserverMethods(new ShowDog()).iterator().next().getTransactionPhase().equals(TransactionPhase.AFTER_COMPLETION); assert getCurrentManager().resolveObserverMethods(new SmallDog()).iterator().next().getTransactionPhase().equals(TransactionPhase.AFTER_FAILURE); assert getCurrentManager().resolveObserverMethods(new LargeDog()).iterator().next().getTransactionPhase().equals(TransactionPhase.AFTER_SUCCESS); }
@Override public ObserverMethodConfigurator<T> read(ObserverMethod observerMethod) { this.beanClass = observerMethod.getBeanClass(); this.qualifiers.addAll(observerMethod.getObservedQualifiers()); this.observedType = observerMethod.getObservedType(); this.reception = observerMethod.getReception(); this.transactionPhase = observerMethod.getTransactionPhase(); this.priority = observerMethod.getPriority(); this.async = observerMethod.isAsync(); return this; }
@Override boolean test(ObserverMethod<?> observer) { final Bean<?> declaringBean; if (observer instanceof ObserverMethodImpl) { declaringBean = ((ObserverMethodImpl<?, ?>) observer).getDeclaringBean(); } else { declaringBean = null; } return testBda(bda, declaringBean) && testEquals(declaringBeanKind, BeanKind.from(declaringBean)) && testEquals(reception, observer.getReception()) && testEquals(txPhase, observer.getTransactionPhase()) && testContainsIgnoreCase(beanClass, observer.getBeanClass()) && testContainsIgnoreCase(observedType, observer.getObservedType()) && testAnyContains(qualifier, observer.getObservedQualifiers()); }
@Override boolean test(ObserverMethod<?> observer) { final Bean<?> declaringBean; if (observer instanceof ObserverMethodImpl) { declaringBean = ((ObserverMethodImpl<?, ?>) observer).getDeclaringBean(); } else { declaringBean = null; } return testBda(bda, declaringBean) && testEquals(declaringBeanKind, BeanKind.from(declaringBean)) && testEquals(reception, observer.getReception()) && testEquals(txPhase, observer.getTransactionPhase()) && testContainsIgnoreCase(beanClass, observer.getBeanClass()) && testContainsIgnoreCase(observedType, observer.getObservedType()) && testAnyContains(qualifier, observer.getObservedQualifiers()); }
@Override boolean test(ObserverMethod<?> observer) { final Bean<?> declaringBean; if (observer instanceof ObserverMethodImpl) { declaringBean = ((ObserverMethodImpl<?, ?>) observer).getDeclaringBean(); } else { declaringBean = null; } return testBda(bda, declaringBean) && testEquals(declaringBeanKind, BeanKind.from(declaringBean)) && testEquals(reception, observer.getReception()) && testEquals(txPhase, observer.getTransactionPhase()) && testContainsIgnoreCase(beanClass, observer.getBeanClass()) && testContainsIgnoreCase(observedType, observer.getObservedType()) && testAnyContains(qualifier, observer.getObservedQualifiers()); }
@Override public ObserverMethodConfigurator<T> read(final ObserverMethod<T> observerMethod) { checkArgumentNotNull(observerMethod); beanClass(observerMethod.getBeanClass()); observedType(observerMethod.getObservedType()); qualifiers(observerMethod.getObservedQualifiers()); reception(observerMethod.getReception()); transactionPhase(observerMethod.getTransactionPhase()); priority(observerMethod.getPriority()); async(observerMethod.isAsync()); return this; }
@Override public ObserverMethodConfigurator<T> read(final ObserverMethod<T> observerMethod) { checkArgumentNotNull(observerMethod); beanClass(observerMethod.getBeanClass()); observedType(observerMethod.getObservedType()); qualifiers(observerMethod.getObservedQualifiers()); reception(observerMethod.getReception()); transactionPhase(observerMethod.getTransactionPhase()); priority(observerMethod.getPriority()); async(observerMethod.isAsync()); return this; }
@Override boolean test(ObserverMethod<?> observer) { final Bean<?> declaringBean; if (observer instanceof ObserverMethodImpl) { declaringBean = ((ObserverMethodImpl<?, ?>) observer).getDeclaringBean(); } else { declaringBean = null; } return testBda(bda, declaringBean) && testEquals(declaringBeanKind, BeanKind.from(declaringBean)) && testEquals(reception, observer.getReception()) && testEquals(txPhase, observer.getTransactionPhase()) && testContainsIgnoreCase(beanClass, observer.getBeanClass()) && testContainsIgnoreCase(observedType, observer.getObservedType()) && testAnyContains(qualifier, observer.getObservedQualifiers()); }
@Override boolean test(ObserverMethod<?> observer) { final Bean<?> declaringBean; if (observer instanceof ObserverMethodImpl) { declaringBean = ((ObserverMethodImpl<?, ?>) observer).getDeclaringBean(); } else { declaringBean = null; } return testBda(bda, declaringBean) && testEquals(declaringBeanKind, BeanKind.from(declaringBean)) && testEquals(reception, observer.getReception()) && testEquals(txPhase, observer.getTransactionPhase()) && testContainsIgnoreCase(beanClass, observer.getBeanClass()) && testContainsIgnoreCase(observedType, observer.getObservedType()) && testAnyContains(qualifier, observer.getObservedQualifiers()); }
@Override boolean test(ObserverMethod<?> observer) { final Bean<?> declaringBean; if (observer instanceof ObserverMethodImpl) { declaringBean = ((ObserverMethodImpl<?, ?>) observer).getDeclaringBean(); } else { declaringBean = null; } return testBda(bda, declaringBean) && testEquals(declaringBeanKind, BeanKind.from(declaringBean)) && testEquals(reception, observer.getReception()) && testEquals(txPhase, observer.getTransactionPhase()) && testContainsIgnoreCase(beanClass, observer.getBeanClass()) && testContainsIgnoreCase(observedType, observer.getObservedType()) && testAnyContains(qualifier, observer.getObservedQualifiers()); }
@Override boolean test(ObserverMethod<?> observer) { final Bean<?> declaringBean; if (observer instanceof ObserverMethodImpl) { declaringBean = ((ObserverMethodImpl<?, ?>) observer).getDeclaringBean(); } else { declaringBean = null; } return testBda(bda, declaringBean) && testEquals(declaringBeanKind, BeanKind.from(declaringBean)) && testEquals(reception, observer.getReception()) && testEquals(txPhase, observer.getTransactionPhase()) && testContainsIgnoreCase(beanClass, observer.getBeanClass()) && testContainsIgnoreCase(observedType, observer.getObservedType()) && testAnyContains(qualifier, observer.getObservedQualifiers()); }
@Override public ObserverMethodConfigurator<T> read(final ObserverMethod<T> observerMethod) { checkArgumentNotNull(observerMethod); beanClass(observerMethod.getBeanClass()); observedType(observerMethod.getObservedType()); qualifiers(observerMethod.getObservedQualifiers()); reception(observerMethod.getReception()); transactionPhase(observerMethod.getTransactionPhase()); priority(observerMethod.getPriority()); async(observerMethod.isAsync()); return this; }
@Override public ObserverMethodConfigurator<T> read(final ObserverMethod<T> observerMethod) { checkArgumentNotNull(observerMethod); beanClass(observerMethod.getBeanClass()); observedType(observerMethod.getObservedType()); qualifiers(observerMethod.getObservedQualifiers()); reception(observerMethod.getReception()); transactionPhase(observerMethod.getTransactionPhase()); priority(observerMethod.getPriority()); async(observerMethod.isAsync()); return this; }
@Override public ObserverMethodConfigurator<T> read(final ObserverMethod<T> observerMethod) { checkArgumentNotNull(observerMethod); beanClass(observerMethod.getBeanClass()); observedType(observerMethod.getObservedType()); qualifiers(observerMethod.getObservedQualifiers()); reception(observerMethod.getReception()); transactionPhase(observerMethod.getTransactionPhase()); priority(observerMethod.getPriority()); async(observerMethod.isAsync()); return this; }