View Javadoc
1   package com.github.jonasrutishauser.transactional.event.quarkus.deployment.it;
2   
3   import java.util.Collection;
4   
5   import com.github.jonasrutishauser.transactional.event.api.EventPublisher;
6   
7   import jakarta.enterprise.context.Dependent;
8   import jakarta.enterprise.context.control.ActivateRequestContext;
9   import jakarta.inject.Inject;
10  import jakarta.transaction.Transactional;
11  
12  @Dependent
13  public class TestPublisher {
14  
15      private final EventPublisher publisher;
16  
17      private final Messages messages;
18  
19      private final RequestContextProbe requestContextProbe;
20  
21      @Inject
22      TestPublisher(EventPublisher publisher, Messages messages, RequestContextProbe requestContextProbe) {
23          this.publisher = publisher;
24          this.messages = messages;
25          this.requestContextProbe = requestContextProbe;
26      }
27  
28      @Transactional
29      @ActivateRequestContext
30      public void publish(String message) {
31          publisher.publish(new TestEvent(message));
32      }
33  
34      @Transactional
35      @ActivateRequestContext
36      public void publishCustom(String message) {
37          publisher.publish(new TestEventWithCustomSerialization(message));
38      }
39  
40      @Transactional
41      @ActivateRequestContext
42      public void publishString(String message) {
43          publisher.publish(message);
44      }
45  
46      @Transactional
47      @ActivateRequestContext
48      public void publishWithRequestContext(String message) {
49          requestContextProbe.mark();
50          publisher.publish(new TestEvent(message));
51      }
52  
53      public Collection<String> getMessages() {
54          return messages.get();
55      }
56  
57  }