TestResource.java

  1. package com.github.jonasrutishauser.transactional.event.liberty;

  2. import static jakarta.ws.rs.core.MediaType.APPLICATION_JSON;

  3. import java.util.Collection;

  4. import jakarta.enterprise.context.RequestScoped;
  5. import jakarta.inject.Inject;
  6. import jakarta.transaction.Transactional;
  7. import jakarta.ws.rs.GET;
  8. import jakarta.ws.rs.POST;
  9. import jakarta.ws.rs.Path;
  10. import jakarta.ws.rs.Produces;

  11. import com.github.jonasrutishauser.transactional.event.api.EventPublisher;

  12. @Path("/test")
  13. @RequestScoped
  14. public class TestResource {

  15.     private final EventPublisher publisher;

  16.     private final Messages messages;

  17.     public TestResource() {
  18.         this(null, null);
  19.     }

  20.     @Inject
  21.     public TestResource(EventPublisher publisher, Messages messages) {
  22.         this.publisher = publisher;
  23.         this.messages = messages;
  24.     }

  25.     @POST
  26.     @Transactional
  27.     public void publish(String message) {
  28.         publisher.publish(new TestEvent(message));
  29.     }

  30.     @GET
  31.     @Produces(APPLICATION_JSON)
  32.     public Collection<String> getMessages() {
  33.         return messages.get();
  34.     }

  35. }