Class QuarkusDeployment

java.lang.Object
io.quarkus.arquillian.QuarkusDeployment

class QuarkusDeployment extends Object
This class is a workaround for Arquillian holding onto deployment-scoped (and container-scoped) objects until its end of life. That allows undeploying and redeploying without losing contextual data, but is also technically a memory leak. If the deployment-scoped objects are large (such as the RunningQuarkusApplication), this memory leak becomes very visible very soon. This Quarkus Arquillian adapter is only used to run TCKs for Jakarta and MicroProfile specifications, which don't need this capability. Also, the RunningQuarkusApplication is unusable after it is closed, so it makes no sense to keep it around. Hence, QuarkusDeployableContainer may safely cleanup() this object after a deployment is undeployed, making the Quarkus application unreachable and GC-able. Arquillian will keep piling up empty objects, which is still a memory leak, but one that doesn't hurt as much.
  • Constructor Details

    • QuarkusDeployment

      QuarkusDeployment(io.quarkus.bootstrap.app.RunningQuarkusApplication runningApp)
  • Method Details

    • getRunningApp

      io.quarkus.bootstrap.app.RunningQuarkusApplication getRunningApp()
    • getAppClassLoader

      ClassLoader getAppClassLoader()
    • hasAppClassLoader

      boolean hasAppClassLoader()
    • cleanup

      void cleanup()