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

org.teknux.jettybootstrap.configuration.JettyConfiguration Maven / Gradle / Ivy

There is a newer version: 1.0.14
Show newest version
/*******************************************************************************
 * (C) Copyright 2014 Teknux.org (http://teknux.org/).
 *  
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *  
 *     http://www.apache.org/licenses/LICENSE-2.0
 *  
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *  
 * Contributors:
 *      "Pierre PINON"
 *      "Francois EYL"
 *      "Laurent MARCHAL"
 *  
 *******************************************************************************/
package org.teknux.jettybootstrap.configuration;

import java.io.File;
import java.security.KeyStore;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

import org.teknux.jettybootstrap.keystore.JettyKeystoreGeneratorBuilder;


/**
 * Base implementation of the configuration properties holding default values.
 */
public class JettyConfiguration implements IJettyConfiguration {

    private boolean autoJoinOnStart = true;

    private int maxThreads = 128;
    private boolean stopAtShutdown = true;
    private long stopTimeout = 5000;

    private long idleTimeout = 30000;
    private String host = "0.0.0.0";
    private int port = 8080;
    private int sslPort = 8443;

    private Set jettyConnectors = new HashSet(Arrays.asList(JettyConnector.HTTP));
    private boolean redirectWebAppsOnHttpsConnector = false;

    private JettySslFileFormat sslPrivateKeyFormat = JettySslFileFormat.PKCS8;
    private String sslPrivateKeyPath = null;
    private String sslPrivateKeyPassword = null;
    private JettySslFileFormat sslCertificateFormat = JettySslFileFormat.PKCS8;
    private String sslCertificatePath = null;
    private String sslCertificatePassword = null;
    private KeyStore sslKeyStore = null;
    private String sslKeyStorePath = null;
    private String sslKeyStoreDomainName = "unknown";
    private String sslKeyStoreAlias = "jettybootstrap";
    private String sslKeyStorePassword = "jettybootstrap";
    private String sslKeyStoreAlgorithm = JettyKeystoreGeneratorBuilder.DEFAULT_ALGORITHM;
    private String sslKeyStoreSignatureAlgorithm = JettyKeystoreGeneratorBuilder.DEFAULT_SIGNATURE_ALGORITHM;
    private String sslKeyStoreRdnOuValue = null;
    private String sslKeyStoreRdnOValue = null;
    private int sslKeyStoreDateNotBeforeNumberOfDays = JettyKeystoreGeneratorBuilder.DEFAULT_DATE_NOT_BEFORE_NUMBER_OF_DAYS;
    private int sslKeyStoreDateNotAfterNumberOfDays = JettyKeystoreGeneratorBuilder.DEFAULT_DATE_NOT_AFTER_NUMBER_OF_DAYS;

    private File tempDirectory = null;
    private boolean persistAppTempDirectories = false;
    private boolean cleanTempDir = false;
    private boolean parentLoaderPriority = true;
    private boolean throwIfStartupException = true;
    private int maxInactiveInterval = -1;

    public IJettyConfiguration clone() {
        try {
            return (IJettyConfiguration) super.clone();
        } catch (CloneNotSupportedException e) {
            return null;
        }
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#isAutoJoinOnStart()
     */
    @Override
    public boolean isAutoJoinOnStart() {
        return autoJoinOnStart;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setAutoJoinOnStart(boolean)
     */
    @Override
    public void setAutoJoinOnStart(boolean autoJoinOnStart) {
        this.autoJoinOnStart = autoJoinOnStart;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getMaxThreads()
     */
    @Override
    public int getMaxThreads() {
        return maxThreads;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setMaxThreads(int)
     */
    @Override
    public void setMaxThreads(int maxThreads) {
        this.maxThreads = maxThreads;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#isStopAtShutdown()
     */
    @Override
    public boolean isStopAtShutdown() {
        return stopAtShutdown;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setStopAtShutdown(boolean)
     */
    @Override
    public void setStopAtShutdown(boolean stopAtShutdown) {
        this.stopAtShutdown = stopAtShutdown;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getStopTimeout()
     */
    @Override
    public long getStopTimeout() {
        return stopTimeout;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setStopTimeout(long)
     */
    @Override
    public void setStopTimeout(long stopTimeout) {
        this.stopTimeout = stopTimeout;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getIdleTimeout()
     */
    @Override
    public long getIdleTimeout() {
        return idleTimeout;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setIdleTimeout(long)
     */
    @Override
    public void setIdleTimeout(long idleTimeout) {
        this.idleTimeout = idleTimeout;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getHost()
     */
    @Override
    public String getHost() {
        return host;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setHost(java.lang.String)
     */
    @Override
    public void setHost(String host) {
        this.host = host;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getPort()
     */
    @Override
    public int getPort() {
        return port;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setPort(int)
     */
    @Override
    public void setPort(int port) {
        this.port = port;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslPort()
     */
    @Override
    public int getSslPort() {
        return sslPort;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslPort(int)
     */
    @Override
    public void setSslPort(int sslPort) {
        this.sslPort = sslPort;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#hasJettyConnector(org.teknux.jettybootstrap.configuration.JettyConnector)
     */
    @Override
    public boolean hasJettyConnector(JettyConnector jettyConnector) {
        return (jettyConnectors.contains(jettyConnector));
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getJettyConnectors()
     */
    @Override
    public Set getJettyConnectors() {
        return jettyConnectors;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setJettyConnectors(org.teknux.jettybootstrap.configuration.JettyConnector[])
     */
    @Override
    public void setJettyConnectors(JettyConnector... jettyConnectors) {
        this.jettyConnectors = new HashSet(Arrays.asList(jettyConnectors));
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#isRedirectWebAppsOnHttpsConnector()
     */
    @Override
    public boolean isRedirectWebAppsOnHttpsConnector() {
        return redirectWebAppsOnHttpsConnector;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setRedirectWebAppsOnHttpsConnector(boolean)
     */
    @Override
    public void setRedirectWebAppsOnHttpsConnector(boolean redirectWebAppsOnHttpsConnector) {
        this.redirectWebAppsOnHttpsConnector = redirectWebAppsOnHttpsConnector;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslPrivateKeyFormat()
     */
    @Override
    public JettySslFileFormat getSslPrivateKeyFormat() {
        return sslPrivateKeyFormat;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslPrivateKeyFormat(org.teknux.jettybootstrap.configuration.JettySslFileFormat)
     */
    @Override
    public void setSslPrivateKeyFormat(JettySslFileFormat sslPrivateKeyFormat) {
        this.sslPrivateKeyFormat = sslPrivateKeyFormat;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslPrivateKeyPath()
     */
    @Override
    public String getSslPrivateKeyPath() {
        return sslPrivateKeyPath;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslPrivateKeyPath(java.lang.String)
     */
    @Override
    public void setSslPrivateKeyPath(String sslPrivateKeyPath) {
        this.sslPrivateKeyPath = sslPrivateKeyPath;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslPrivateKeyPassword()
     */
    @Override
    public String getSslPrivateKeyPassword() {
        return sslPrivateKeyPassword;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslPrivateKeyPassword(java.lang.String)
     */
    @Override
    public void setSslPrivateKeyPassword(String sslPrivateKeyPassword) {
        this.sslPrivateKeyPassword = sslPrivateKeyPassword;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslCertificateFormat()
     */
    @Override
    public JettySslFileFormat getSslCertificateFormat() {
        return sslCertificateFormat;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslCertificateFormat(org.teknux.jettybootstrap.configuration.JettySslFileFormat)
     */
    @Override
    public void setSslCertificateFormat(JettySslFileFormat sslCertificateFormat) {
        this.sslCertificateFormat = sslCertificateFormat;

    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslCertificatePath()
     */
    @Override
    public String getSslCertificatePath() {
        return sslCertificatePath;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslCertificatePath(java.lang.String)
     */
    @Override
    public void setSslCertificatePath(String sslCertificatePath) {
        this.sslCertificatePath = sslCertificatePath;
    }

    @Override
    public String getSslCertificatePassword() {
        return sslCertificatePassword;
    }

    @Override
    public void setSslCertificatePassword(String sslCertificatePassword) {
        this.sslCertificatePassword = sslCertificatePassword;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStore()
     */
    @Override
    public KeyStore getSslKeyStore() {
        return sslKeyStore;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStore(java.security.Keystore)
     */
    @Override
    public void setSslKeyStore(KeyStore sslKeyStore) {
        this.sslKeyStore = sslKeyStore;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStorePath()
     */
    @Override
    public String getSslKeyStorePath() {
        return sslKeyStorePath;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStorePath(java.lang.String)
     */
    @Override
    public void setSslKeyStorePath(String sslKeyStorePath) {
        this.sslKeyStorePath = sslKeyStorePath;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStoreDomainName()
     */
    @Override
    public String getSslKeyStoreDomainName() {
        return sslKeyStoreDomainName;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStoreDomainName(java.lang.String)
     */
    @Override
    public void setSslKeyStoreDomainName(String sslKeyStoreDomainName) {
        this.sslKeyStoreDomainName = sslKeyStoreDomainName;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStoreAlias()
     */
    @Override
    public String getSslKeyStoreAlias() {
        return sslKeyStoreAlias;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStoreAlias(java.lang.String)
     */
    @Override
    public void setSslKeyStoreAlias(String sslKeyStoreAlias) {
        this.sslKeyStoreAlias = sslKeyStoreAlias;

    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStorePassword()
     */
    @Override
    public String getSslKeyStorePassword() {
        return sslKeyStorePassword;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStorePassword(java.lang.String)
     */
    @Override
    public void setSslKeyStorePassword(String sslKeyStorePassword) {
        this.sslKeyStorePassword = sslKeyStorePassword;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStoreAlgorithm()
     */
    @Override
    public String getSslKeyStoreAlgorithm() {
        return sslKeyStoreAlgorithm;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStoreAlgorithm(java.lang.String)
     */
    @Override
    public void setSslKeyStoreAlgorithm(String sslKeyStoreAlgorithm) {
        this.sslKeyStoreAlgorithm = sslKeyStoreAlgorithm;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStoreSignatureAlgorithm()
     */
    @Override
    public String getSslKeyStoreSignatureAlgorithm() {
        return sslKeyStoreSignatureAlgorithm;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStoreSignatureAlgorithm(java.lang.String)
     */
    @Override
    public void setSslKeyStoreSignatureAlgorithm(String sslKeyStoreSignatureAlgorithm) {
        this.sslKeyStoreSignatureAlgorithm = sslKeyStoreSignatureAlgorithm;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStoreRdnOuValue()
     */
    @Override
    public String getSslKeyStoreRdnOuValue() {
        return sslKeyStoreRdnOuValue;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStoreRdnOuValue(java.lang.String)
     */
    @Override
    public void setSslKeyStoreRdnOuValue(String sslKeyStoreRdnOuValue) {
        this.sslKeyStoreRdnOuValue = sslKeyStoreRdnOuValue;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStoreRdnOValue()
     */
    @Override
    public String getSslKeyStoreRdnOValue() {
        return sslKeyStoreRdnOValue;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStoreRdnOValue(java.lang.String)
     */
    @Override
    public void setSslKeyStoreRdnOValue(String sslKeyStoreRdnOValue) {
        this.sslKeyStoreRdnOValue = sslKeyStoreRdnOValue;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStoreDateNotBeforeNumberOfDays()
     */
    @Override
    public int getSslKeyStoreDateNotBeforeNumberOfDays() {
        return sslKeyStoreDateNotBeforeNumberOfDays;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStoreDateNotBeforeNumberOfDays(int)
     */
    @Override
    public void setSslKeyStoreDateNotBeforeNumberOfDays(int sslKeyStoreDateNotBeforeNumberOfDays) {
        this.sslKeyStoreDateNotBeforeNumberOfDays = sslKeyStoreDateNotBeforeNumberOfDays;

    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getSslKeyStoreDateNotAfterNumberOfDays()
     */
    @Override
    public int getSslKeyStoreDateNotAfterNumberOfDays() {
        return sslKeyStoreDateNotAfterNumberOfDays;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setSslKeyStoreDateNotAfterNumberOfDays(int)
     */
    @Override
    public void setSslKeyStoreDateNotAfterNumberOfDays(int sslKeyStoreDateNotAfterNumberOfDays) {
        this.sslKeyStoreDateNotAfterNumberOfDays = sslKeyStoreDateNotAfterNumberOfDays;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getTempDirectory()
     */
    @Override
    public File getTempDirectory() {
        return tempDirectory;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setTempDirectory(java.io.File)
     */
    @Override
    public void setTempDirectory(File tempDirectory) {
        this.tempDirectory = tempDirectory;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#isPersistAppTempDirectories()
     */
    @Override
    public boolean isPersistAppTempDirectories() {
        return persistAppTempDirectories;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setPersistAppTempDirectories(boolean)
     */
    @Override
    public void setPersistAppTempDirectories(boolean persistAppTempDirectories) {
        this.persistAppTempDirectories = persistAppTempDirectories;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#isCleanTempDir()
     */
    @Override
    public boolean isCleanTempDir() {
        return cleanTempDir;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setCleanTempDir(boolean)
     */
    @Override
    public void setCleanTempDir(boolean cleanTempDir) {
        this.cleanTempDir = cleanTempDir;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#isParentLoaderPriority()
     */
    @Override
    public boolean isParentLoaderPriority() {
        return parentLoaderPriority;
    }

    /* (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setParentLoaderPriority(boolean)
     */
    @Override
    public void setParentLoaderPriority(boolean parentLoaderPriority) {
        this.parentLoaderPriority = parentLoaderPriority;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#isThrowIfStartupException()
     */
    @Override
    public boolean isThrowIfStartupException() {
        return throwIfStartupException;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setThrowIfStartupException(boolean)
     */
    @Override
    public void setThrowIfStartupException(boolean throwIfStartupException) {
        this.throwIfStartupException = throwIfStartupException;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#getMaxInactiveInterval()
     */
    @Override
    public int getMaxInactiveInterval() {
        return maxInactiveInterval;
    }

    /*
     * (non-Javadoc)
     * @see org.teknux.jettybootstrap.configuration.IJettyConfiguration#setMaxInactiveInterval(int)
     */
    @Override
    public void setMaxInactiveInterval(int maxInactiveInterval) {
        this.maxInactiveInterval = maxInactiveInterval;
    }

    @Override
    public String toString() {
        return "JettyConfiguration [autoJoinOnStart=" + autoJoinOnStart + ", maxThreads=" + maxThreads + ", stopAtShutdown=" + stopAtShutdown + ", stopTimeout=" + stopTimeout +
            ", idleTimeout=" + idleTimeout + ", host=" + host + ", port=" + port + ", sslPort=" + sslPort + ", jettyConnectors=" + jettyConnectors +
            ", redirectWebAppsOnHttpsConnector=" + redirectWebAppsOnHttpsConnector + ", sslPrivateKeyFormat=" + sslPrivateKeyFormat + ", sslPrivateKeyPath=" + sslPrivateKeyPath +
            ", sslCertificateFormat=" + sslCertificateFormat + ", sslCertificatePath=" + sslCertificatePath + ", sslKeyStorePath=" + sslKeyStorePath + ", sslKeyStoreDomainName=" +
            sslKeyStoreDomainName + ", sslKeyStoreAlias=" + sslKeyStoreAlias + ", sslKeyStorePassword=" + sslKeyStorePassword + ", sslKeyStoreAlgorithm=" + sslKeyStoreAlgorithm +
            ", sslKeyStoreSignatureAlgorithm=" + sslKeyStoreSignatureAlgorithm + ", sslKeyStoreRdnOuValue=" + sslKeyStoreRdnOuValue + ", sslKeyStoreRdnOValue=" +
            sslKeyStoreRdnOValue + ", sslKeyStoreDateNotBeforeNumberOfDays=" + sslKeyStoreDateNotBeforeNumberOfDays + ", sslKeyStoreDateNotAfterNumberOfDays=" +
            sslKeyStoreDateNotAfterNumberOfDays + ", tempDirectory=" + tempDirectory + ", persistAppTempDirectories=" + persistAppTempDirectories + ", cleanTempDir=" +
            cleanTempDir + ", parentLoaderPriority=" + parentLoaderPriority + ", throwIfStartupException=" + throwIfStartupException + ", maxInactiveInterval=" +
            maxInactiveInterval + "]";
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy