Skip to main content

Jakarta EE Monthly Platform Architecture Call

Date: 2023-03-07

Present:

  • Jan Westerkamp (iJUG)
  • Jared Anderson (IBM)
  • Emily Jiang (IBM)
  • Nathan Rauh (IBM)
  • Tom Watson (IBM)
  • Petr Aubrecht (Payara)
  • David Matějček (OmniFish)
  • Lukas Jungmann (Oracle)
  • Dmitry Kornilov (Oracle)
  • Tanja Obradovic (Eclipse Foundation)
  • Werner Keil (Committer/Ambassador)
  • Lenny Primak (Individual)

Agenda and Minutes

Follow up discussion

  • Virtual Threads in Jakarta EE 11 (https://openjdk.org/jeps/436 )
    • Issue opened on Jakarta Concurrency
    • What about servlet or other async features of Jakarta REST?
      • AsynchronousServlet in Servlet
      • Suspend/Resume request and ClientBuilder.executorService in Jakarta REST (async scenario in Jakarta REST blog)
      • Asynchronous in EJB
      • XML Web Services (SOAP)
    • Decision to be made regarding which spec needs to support virtual thread.
    • Could this be implemented by app runtime?
    • Virtual thread needs to be in the spec?
      • Compute intensive tasks need to be platform thread?
        • Discussed but not agreed with an answer
      • Would default be platform thread or virtual thread?
      • Should an end user care about whether a virtual thread or platform thread is used?
    • Thread pool to control load and resources

        ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor(); // New method
        ExecutorService executor = Executors.newFixedThreadPool(Integer poolSize); // Old method
      
  • Other Java SE 21 features to leverage in Jakarta EE 11
    • JPMS support
    • Record support in JPA
      • No use case for entity
      • Entity: how to track lifecycle
    • Record support for Jakarta Data
      • Good for DTOs,
    • Record support for JSON-B and JSON-P
    • Record support for RESTful Web Services
    • Record support for CDI beans: should work

CN4J call preparation slides

Back to the top