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

org.jboss.as.arquillian.container.CommonContainerConfiguration Maven / Gradle / Ivy

There is a newer version: 5.1.0.Beta6
Show newest version
/*
 * Copyright The WildFly Authors
 * SPDX-License-Identifier: Apache-2.0
 */
package org.jboss.as.arquillian.container;

import java.net.URI;

import org.jboss.arquillian.container.spi.ConfigurationException;
import org.jboss.arquillian.container.spi.client.container.ContainerConfiguration;

/**
 * JBossAS7 server configuration
 *
 * @author [email protected]
 * @author Andrew Lee Rubinger
 */
public class CommonContainerConfiguration implements ContainerConfiguration {

    private String managementProtocol = "remote+http";
    private String managementAddress;
    private int managementPort;

    private String username;
    private String password;
    private String authenticationConfig;

    private String protocol = "http";
    private String host;
    private int port;
    private String socketBindingName;

    /**
     * Optional connection timeout in millis.
     */
    private int connectionTimeout;

    public CommonContainerConfiguration() {
        managementAddress = "127.0.0.1";
        managementPort = 9990 + Integer.decode(System.getProperty("jboss.socket.binding.port-offset", "0"));
        host = null;
        port = -1;
    }

    public String getManagementAddress() {
        return managementAddress;
    }

    public void setManagementAddress(String host) {
        this.managementAddress = host;
    }

    public int getManagementPort() {
        return managementPort;
    }

    public void setManagementPort(int managementPort) {
        this.managementPort = managementPort;
    }

    public String getUsername() {
        return username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPassword() {
        return password;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getManagementProtocol() {
        return managementProtocol;
    }

    /**
     * Returns the protocol to for HTTP connections. This currently only supports http and https with a default of http.
     *
     * @return the protocol
     */
    public String getProtocol() {
        return protocol;
    }

    /**
     * Sets the protocol for HTTP connections. If {@code null} the default of http is used.
     *
     * @param protocol the protocol to use, this must be http or https
     */
    public void setProtocol(final String protocol) {
        this.protocol = protocol == null ? "http" : protocol;
        if (!("http".equalsIgnoreCase(this.protocol) || "https".equalsIgnoreCase(this.protocol))) {
            throw new ConfigurationException("Only http and https are allowed protocol settings, found " + protocol);
        }
    }

    /**
     * Returns the socket binding name to use.
     *
     * @return the socket binding name or {@code null} to discover one
     */
    public String getSocketBindingName() {
        return socketBindingName;
    }

    public String getHost() {
        return host;
    }

    public void setHost(String host) {
        this.host = host;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public void setManagementProtocol(final String managementProtocol) {
        this.managementProtocol = managementProtocol;
    }

    public int getConnectionTimeout() {
        return this.connectionTimeout;
    }

    /**
     * Accepts a timeout which must be greater than 0.
     */
    public void setConnectionTimeout(final int connectionTimeout) {
        if (connectionTimeout <= 0) {
            throw new IllegalArgumentException("Connection timeout " + connectionTimeout + " must be > 0");
        }
        this.connectionTimeout = connectionTimeout;
    }

    /**
     * The {@linkplain URI URI} path for the authentication configuration.
     *
     * @return the URI for the path or {@code null} if no path was set
     */
    public String getAuthenticationConfig() {
        return authenticationConfig;
    }

    /**
     * Set the {@linkplain URI URI} path for the authentication configuration.
     *
     * @param authenticationConfig the URI path
     */
    public void setAuthenticationConfig(final String authenticationConfig) {
        this.authenticationConfig = authenticationConfig;
    }

    /**
     * Sets the socket binding name to use for determining the host and port for HTTP connections. This can be used to
     * override discovering the first binding name.
     * 

* The socket binding name is configured in WildFly. If this is not set, one will be determined from the Undertow * subsystem. *

* * @param socketBindingName the socket binding name or {@code null} for one to be determined */ public void setSocketBindingName(final String socketBindingName) { this.socketBindingName = socketBindingName; } @Override public void validate() throws ConfigurationException { if (username != null && password == null) { throw new ConfigurationException("username has been set, but no password given"); } if (protocol != null && !("http".equalsIgnoreCase(protocol) || "https".equalsIgnoreCase(protocol))) { throw new ConfigurationException("Only http and https are allowed protocol settings, found " + protocol); } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy