All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bmuschko.gradle.tomcat.embedded.BaseTomcatServerImpl.groovy Maven / Gradle / Ivy

package com.bmuschko.gradle.tomcat.embedded

/**
 * Implementation of common Tomcat server logic.
 *
 * @author Benjamin Muschko
 * @author Andrey Bloschetsov
 */
abstract class BaseTomcatServerImpl implements TomcatServer {
    final tomcat
    def context
    private boolean stopped

    public BaseTomcatServerImpl() {
        Class serverClass = loadClass(getServerClassName())
        this.tomcat = serverClass.newInstance()
    }

    Class loadClass(String className) {
        ClassLoader classLoader = Thread.currentThread().contextClassLoader
        classLoader.loadClass(className)
    }

    @Override
    def getEmbedded() {
        tomcat
    }

    @Override
    def getContext() {
        context
    }

    @Override
    void addWebappResource(File resource) {
        context.loader.addRepository(resource.toURI().toURL().toString())
    }

    @Override
    void start() {
        stopped = false
        tomcat.start()
    }

    @Override
    void stop() {
        context?.stop()
        context?.destroy()

        if(!stopped) {
            tomcat.stop()
            stopped = true
        }

        tomcat.destroy()
    }

    @Override
    boolean isStopped() {
        stopped
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy