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 }