@Override public int compare(ObserverMethod<?> o1, ObserverMethod<?> o2) { ObserverMethod<?> eom1 = (ObserverMethod<?>) o1; ObserverMethod<?> eom2 = (ObserverMethod<?>) o2; return eom1.getPriority() - eom2.getPriority(); } }
@Override public int compare(ObserverMethod<?> o1, ObserverMethod<?> o2) { ObserverMethod<?> eom1 = (ObserverMethod<?>) o1; ObserverMethod<?> eom2 = (ObserverMethod<?>) o2; return eom1.getPriority() - eom2.getPriority(); } }
@Override public int compare(ObserverMethod<?> o1, ObserverMethod<?> o2) { ObserverMethod<?> eom1 = (ObserverMethod<?>) o1; ObserverMethod<?> eom2 = (ObserverMethod<?>) o2; return eom1.getPriority() - eom2.getPriority(); } }
@Override public int compare(ObserverMethod<?> o1, ObserverMethod<?> o2) { ObserverMethod<?> eom1 = (ObserverMethod<?>) o1; ObserverMethod<?> eom2 = (ObserverMethod<?>) o2; return eom1.getPriority() - eom2.getPriority(); } }
@Override public int compare(ObserverMethod<?> o1, ObserverMethod<?> o2) { ObserverMethod<?> eom1 = (ObserverMethod<?>) o1; ObserverMethod<?> eom2 = (ObserverMethod<?>) o2; return eom1.getPriority() - eom2.getPriority(); } }
@Override public int compare(ObserverMethod<? super Object> o1, ObserverMethod<? super Object> o2) { return Integer.compare(o1.getPriority(), o2.getPriority()); } };
public void registerObservers(@Observes ProcessObserverMethod<?, ?> processObserverMethod) { ObserverMethod<?> observerMethod = processObserverMethod.getObserverMethod(); String id = observerMethod.getBeanClass().getSimpleName() + "." + processObserverMethod.getAnnotatedMethod().getJavaMember().getName(); observerMethodPriorities.put(id, observerMethod.getPriority()); }
@Test @SpecAssertions({ @SpecAssertion(section = OBSERVER_METHOD_CONFIGURATOR, id = "bg"), @SpecAssertion(section = OBSERVER_METHOD_CONFIGURATOR, id = "bd"), @SpecAssertion(section = OBSERVER_METHOD_CONFIGURATOR, id = "bi") }) public void addQualifiersAndSetPriorityAndChangeToAsync() throws InterruptedException { Set<ObserverMethod<? super Pear>> pearEventObservers = getCurrentManager() .resolveObserverMethods(new Pear(), Any.Literal.INSTANCE, Ripe.RipeLiteral.INSTANCE, Delicious.DeliciousLiteral.INSTANCE); assertEquals(pearEventObservers.size(), 1); assertEquals(pearEventObservers.iterator().next().getPriority(), ObserverMethod.DEFAULT_PRIORITY + 100); assertEquals(pearEventObservers.iterator().next().isAsync(), true); assertEquals(pearEventObservers.iterator().next().getObservedQualifiers(), Stream.of(Ripe.RipeLiteral.INSTANCE, Delicious.DeliciousLiteral.INSTANCE).collect( Collectors.toSet())); BlockingQueue<Pear> queue = new LinkedBlockingQueue<>(); pearEvent.select(Any.Literal.INSTANCE, Ripe.RipeLiteral.INSTANCE, Delicious.DeliciousLiteral.INSTANCE).fireAsync(new Pear()).thenAccept(queue::offer); Pear pear = queue.poll(2, TimeUnit.SECONDS); assertNotNull(pear); assertTrue(FruitObserver.pearObserverNotified.get()); }
@Test @SpecAssertion(section = PROCESS_OBSERVER_METHOD, id = "dab") public void configuratorInitializedWithOriginalObserverMethod() { ObserverMethod<? super Kiwi> configuredOne = getCurrentManager().resolveObserverMethods(new Kiwi(), Ripe.RipeLiteral.INSTANCE).iterator().next(); ObserverMethod<Kiwi> originalOne = getCurrentManager().getExtension(ProcessObserverMethodObserver.class).getOriginalOM(); assertEquals(configuredOne.getObservedType(), originalOne.getObservedType()); assertEquals(configuredOne.getObservedQualifiers(), originalOne.getObservedQualifiers()); assertEquals(configuredOne.getPriority(), originalOne.getPriority()); }
@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 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; }
@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; }