Example usage for org.apache.commons.configuration HierarchicalConfiguration getBoolean

List of usage examples for org.apache.commons.configuration HierarchicalConfiguration getBoolean

Introduction

In this page you can find the example usage for org.apache.commons.configuration HierarchicalConfiguration getBoolean.

Prototype

public boolean getBoolean(String key, boolean defaultValue) 

Source Link

Usage

From source file:org.apache.james.mailrepository.file.MBoxMailRepository.java

public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {
    /*//from w  w  w. j  a v  a 2s. c o  m
    The repository configuration
    */
    String destination;
    this.mList = null;
    BUFFERING = configuration.getBoolean("[@BUFFERING]", true);
    fifo = configuration.getBoolean("[@FIFO]", false);
    destination = configuration.getString("[@destinationURL]");
    if (destination.charAt(destination.length() - 1) == '/') {
        // Remove the trailing / as well as the protocol marker
        mboxFile = destination.substring("mbox://".length(), destination.lastIndexOf("/"));
    } else {
        mboxFile = destination.substring("mbox://".length());
    }

    if (getLogger().isDebugEnabled()) {
        getLogger().debug("MBoxMailRepository.destinationURL: " + destination);
    }

    String checkType = configuration.getString("[@type]");
    if (!(checkType.equals("MAIL") || checkType.equals("SPOOL"))) {
        String exceptionString = "Attempt to configure MboxMailRepository as " + checkType;
        if (getLogger().isWarnEnabled()) {
            getLogger().warn(exceptionString);
        }
        throw new ConfigurationException(exceptionString);
    }
}

From source file:org.apache.james.modules.mailbox.ListenerConfiguration.java

public static ListenerConfiguration from(HierarchicalConfiguration configuration) {
    String listenerClass = configuration.getString("class");
    Preconditions.checkState(!Strings.isNullOrEmpty(listenerClass), "class name is mandatory");
    Optional<Boolean> isAsync = Optional.ofNullable(configuration.getBoolean("async", null));
    return new ListenerConfiguration(listenerClass, extractSubconfiguration(configuration), isAsync);
}

From source file:org.apache.james.protocols.lib.netty.AbstractConfigurableAsyncServer.java

/**
 * @see/* www.  j a va 2  s . c o m*/
 * org.apache.james.lifecycle.api.Configurable
 * #configure(org.apache.commons.configuration.HierarchicalConfiguration)
 */
public final void configure(HierarchicalConfiguration config) throws ConfigurationException {

    enabled = config.getBoolean("[@enabled]", true);

    final Logger logger = getLogger();
    if (!enabled) {
        logger.info(getServiceType() + " disabled by configuration");
        return;
    }

    String listen[] = config.getString("bind", "0.0.0.0:" + getDefaultPort()).split(",");
    List<InetSocketAddress> bindAddresses = new ArrayList<InetSocketAddress>();
    for (String aListen : listen) {
        String bind[] = aListen.split(":");

        InetSocketAddress address;
        String ip = bind[0].trim();
        int port = Integer.parseInt(bind[1].trim());
        if (!ip.equals("0.0.0.0")) {
            try {
                ip = InetAddress.getByName(ip).getHostName();
            } catch (UnknownHostException unhe) {
                throw new ConfigurationException(
                        "Malformed bind parameter in configuration of service " + getServiceType(), unhe);
            }
        }
        address = new InetSocketAddress(ip, port);

        String infoBuffer = getServiceType() + " bound to: " + ip + ":" + port;
        logger.info(infoBuffer);

        bindAddresses.add(address);
    }
    setListenAddresses(bindAddresses.toArray(new InetSocketAddress[bindAddresses.size()]));

    jmxName = config.getString("jmxName", getDefaultJMXName());
    int ioWorker = config.getInt("ioWorkerCount", DEFAULT_IO_WORKER_COUNT);
    setIoWorkerCount(ioWorker);

    maxExecutorThreads = config.getInt("maxExecutorCount", DEFAULT_MAX_EXECUTOR_COUNT);

    configureHelloName(config);

    setTimeout(config.getInt(TIMEOUT_NAME, DEFAULT_TIMEOUT));

    StringBuilder infoBuffer = new StringBuilder(64).append(getServiceType())
            .append(" handler connection timeout is: ").append(getTimeout());
    logger.info(infoBuffer.toString());

    setBacklog(config.getInt(BACKLOG_NAME, DEFAULT_BACKLOG));

    infoBuffer = new StringBuilder(64).append(getServiceType()).append(" connection backlog is: ")
            .append(getBacklog());
    logger.info(infoBuffer.toString());

    String connectionLimitString = config.getString("connectionLimit", null);
    if (connectionLimitString != null) {
        try {
            connectionLimit = new Integer(connectionLimitString);
        } catch (NumberFormatException nfe) {
            logger.error("Connection limit value is not properly formatted.", nfe);
        }
        if (connectionLimit < 0) {
            logger.error("Connection limit value cannot be less than zero.");
            throw new ConfigurationException("Connection limit value cannot be less than zero.");
        } else if (connectionLimit > 0) {
            infoBuffer = new StringBuilder(128).append(getServiceType()).append(" will allow a maximum of ")
                    .append(connectionLimitString).append(" connections.");
            logger.info(infoBuffer.toString());
        }
    }

    String connectionLimitPerIP = config.getString("connectionLimitPerIP", null);
    if (connectionLimitPerIP != null) {
        try {
            connPerIP = Integer.parseInt(connectionLimitPerIP);
        } catch (NumberFormatException nfe) {
            logger.error("Connection limit per IP value is not properly formatted.", nfe);
        }
        if (connPerIP < 0) {
            logger.error("Connection limit per IP value cannot be less than zero.");
            throw new ConfigurationException("Connection limit value cannot be less than zero.");
        } else if (connPerIP > 0) {
            infoBuffer = new StringBuilder(128).append(getServiceType()).append(" will allow a maximum of ")
                    .append(connPerIP).append(" per IP connections for ").append(getServiceType());
            logger.info(infoBuffer.toString());
        }
    }

    useStartTLS = config.getBoolean("tls.[@startTLS]", false);
    useSSL = config.getBoolean("tls.[@socketTLS]", false);

    if (useSSL && useStartTLS)
        throw new ConfigurationException("startTLS is only supported when using plain sockets");

    if (useStartTLS || useSSL) {
        enabledCipherSuites = config.getStringArray("tls.supportedCipherSuites.cipherSuite");
        keystore = config.getString("tls.keystore", null);
        if (keystore == null) {
            throw new ConfigurationException("keystore needs to get configured");
        }
        secret = config.getString("tls.secret", "");
        x509Algorithm = config.getString("tls.algorithm", defaultX509algorithm);
    }

    doConfigure(config);

}

From source file:org.apache.james.rrt.lib.AbstractRecipientRewriteTable.java

/**
 * @see org.apache.james.lifecycle.api.Configurable#configure(HierarchicalConfiguration)
 *///w  w w.  jav a 2  s. c  o  m
public void configure(HierarchicalConfiguration config) throws ConfigurationException {
    setRecursiveMapping(config.getBoolean("recursiveMapping", true));
    try {
        setMappingLimit(config.getInt("mappingLimit", 10));
    } catch (IllegalArgumentException e) {
        throw new ConfigurationException(e.getMessage());
    }
    doConfigure(config);
}

From source file:org.apache.james.smtpserver.fastfail.DNSRBLHandler.java

@Override
public void init(Configuration config) throws ConfigurationException {
    boolean validConfig = false;
    HierarchicalConfiguration handlerConfiguration = (HierarchicalConfiguration) config;
    ArrayList<String> rblserverCollection = new ArrayList<String>();

    Collections.addAll(rblserverCollection, handlerConfiguration.getStringArray("rblservers.whitelist"));
    if (rblserverCollection.size() > 0) {
        setWhitelist(rblserverCollection.toArray(new String[rblserverCollection.size()]));
        rblserverCollection.clear();/*  www  . ja va2  s. c o m*/
        validConfig = true;
    }
    Collections.addAll(rblserverCollection, handlerConfiguration.getStringArray("rblservers.blacklist"));
    if (rblserverCollection.size() > 0) {
        setBlacklist(rblserverCollection.toArray(new String[rblserverCollection.size()]));
        rblserverCollection.clear();
        validConfig = true;
    }

    // Throw an ConfiigurationException on invalid config
    if (!validConfig) {
        throw new ConfigurationException("Please configure whitelist or blacklist");
    }

    setGetDetail(handlerConfiguration.getBoolean("getDetail", false));
}

From source file:org.apache.james.smtpserver.netty.SMTPServer.java

@Override
public void doConfigure(HierarchicalConfiguration configuration) throws ConfigurationException {
    super.doConfigure(configuration);
    if (isEnabled()) {
        String authRequiredString = configuration.getString("authRequired", "false").trim().toLowerCase();
        if (authRequiredString.equals("true"))
            authRequired = AUTH_REQUIRED;
        else if (authRequiredString.equals("announce"))
            authRequired = AUTH_ANNOUNCE;
        else/* w  ww .j ava2 s. c  om*/
            authRequired = AUTH_DISABLED;
        if (authRequired != AUTH_DISABLED) {
            getLogger().info("This SMTP server requires authentication.");
        } else {
            getLogger().info("This SMTP server does not require authentication.");
        }

        authorizedAddresses = configuration.getString("authorizedAddresses", null);
        if (authRequired == AUTH_DISABLED && authorizedAddresses == null) {
            /*
             * if SMTP AUTH is not required then we will use
             * authorizedAddresses to determine whether or not to relay
             * e-mail. Therefore if SMTP AUTH is not required, we will not
             * relay e-mail unless the sending IP address is authorized.
             * 
             * Since this is a change in behavior for James v2, create a
             * default authorizedAddresses network of 0.0.0.0/0, which
             * matches all possible addresses, thus preserving the current
             * behavior.
             * 
             * James v3 should require the <authorizedAddresses> element.
             */
            authorizedAddresses = "0.0.0.0/0.0.0.0";
        }

        if (authorizedNetworks != null) {
            getLogger().info("Authorized addresses: " + authorizedNetworks.toString());
        }

        // get the message size limit from the conf file and multiply
        // by 1024, to put it in bytes
        maxMessageSize = configuration.getLong("maxmessagesize", maxMessageSize) * 1024;
        if (maxMessageSize > 0) {
            getLogger().info("The maximum allowed message size is " + maxMessageSize + " bytes.");
        } else {
            getLogger().info("No maximum message size is enforced for this server.");
        }

        heloEhloEnforcement = configuration.getBoolean("heloEhloEnforcement", true);

        if (authRequiredString.equals("true"))
            authRequired = AUTH_REQUIRED;

        // get the smtpGreeting
        smtpGreeting = configuration.getString("smtpGreeting", null);

        addressBracketsEnforcement = configuration.getBoolean("addressBracketsEnforcement", true);

        verifyIdentity = configuration.getBoolean("verifyIdentity", true);

    }
}

From source file:org.apache.james.user.ldap.LdapRepositoryConfiguration.java

public static LdapRepositoryConfiguration from(HierarchicalConfiguration configuration)
        throws ConfigurationException {
    String ldapHost = configuration.getString("[@ldapHost]", "");
    String principal = configuration.getString("[@principal]", "");
    String credentials = configuration.getString("[@credentials]", "");
    String userBase = configuration.getString("[@userBase]");
    String userIdAttribute = configuration.getString("[@userIdAttribute]");
    String userObjectClass = configuration.getString("[@userObjectClass]");
    // Default is to use connection pooling
    boolean useConnectionPool = configuration.getBoolean("[@useConnectionPool]", USE_CONNECTION_POOL);
    int connectionTimeout = configuration.getInt("[@connectionTimeout]", NO_CONNECTION_TIMEOUT);
    int readTimeout = configuration.getInt("[@readTimeout]", NO_READ_TIME_OUT);
    // Default maximum retries is 1, which allows an alternate connection to
    // be found in a multi-homed environment
    int maxRetries = configuration.getInt("[@maxRetries]", 1);
    boolean supportsVirtualHosting = configuration.getBoolean(SUPPORTS_VIRTUAL_HOSTING,
            !ENABLE_VIRTUAL_HOSTING);//  w w  w  .  j  a  v  a 2  s . c  o m
    // Default retry start interval is 0 second
    long retryStartInterval = configuration.getLong("[@retryStartInterval]", 0);
    // Default maximum retry interval is 60 seconds
    long retryMaxInterval = configuration.getLong("[@retryMaxInterval]", 60);
    int scale = configuration.getInt("[@retryIntervalScale]", 1000); // seconds

    HierarchicalConfiguration restrictionConfig = null;
    // Check if we have a restriction we can use
    // See JAMES-1204
    if (configuration.containsKey("restriction[@memberAttribute]")) {
        restrictionConfig = configuration.configurationAt("restriction");
    }
    ReadOnlyLDAPGroupRestriction restriction = new ReadOnlyLDAPGroupRestriction(restrictionConfig);

    //see if there is a filter argument
    String filter = configuration.getString("[@filter]");

    Optional<String> administratorId = Optional.ofNullable(configuration.getString("[@administratorId]"));

    return new LdapRepositoryConfiguration(ldapHost, principal, credentials, userBase, userIdAttribute,
            userObjectClass, useConnectionPool, connectionTimeout, readTimeout, maxRetries,
            supportsVirtualHosting, retryStartInterval, retryMaxInterval, scale, restriction, filter,
            administratorId);
}

From source file:org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository.java

/**
 * Extracts the parameters required by the repository instance from the
 * James server configuration data. The fields extracted include
 * {@link #ldapHost}, {@link #userIdAttribute}, {@link #userBase},
 * {@link #principal}, {@link #credentials} and {@link #restriction}.
 *
 * @param configuration//from   w ww .j a va  2  s  . co  m
 *            An encapsulation of the James server configuration data.
 */
public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {
    ldapHost = configuration.getString("[@ldapHost]", "");
    principal = configuration.getString("[@principal]", "");
    credentials = configuration.getString("[@credentials]", "");
    userBase = configuration.getString("[@userBase]");
    userIdAttribute = configuration.getString("[@userIdAttribute]");
    userObjectClass = configuration.getString("[@userObjectClass]");
    // Default is to use connection pooling
    useConnectionPool = configuration.getBoolean("[@useConnectionPool]", true);
    connectionTimeout = configuration.getInt("[@connectionTimeout]", -1);
    readTimeout = configuration.getInt("[@readTimeout]", -1);
    // Default maximum retries is 1, which allows an alternate connection to
    // be found in a multi-homed environment
    maxRetries = configuration.getInt("[@maxRetries]", 1);
    // Default retry start interval is 0 second
    long retryStartInterval = configuration.getLong("[@retryStartInterval]", 0);
    // Default maximum retry interval is 60 seconds
    long retryMaxInterval = configuration.getLong("[@retryMaxInterval]", 60);
    int scale = configuration.getInt("[@retryIntervalScale]", 1000); // seconds
    schedule = new DoublingRetrySchedule(retryStartInterval, retryMaxInterval, scale);

    HierarchicalConfiguration restrictionConfig = null;
    // Check if we have a restriction we can use
    // See JAMES-1204
    if (configuration.containsKey("restriction[@memberAttribute]")) {
        restrictionConfig = configuration.configurationAt("restriction");
    }
    restriction = new ReadOnlyLDAPGroupRestriction(restrictionConfig);

    //see if there is a filter argument
    filter = configuration.getString("[@filter]");

}

From source file:org.apache.james.user.lib.AbstractJamesUsersRepository.java

@Override
public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {
    setIgnoreCase(configuration.getBoolean("ignoreCase", false));
    setEnableAliases(configuration.getBoolean("enableAliases", false));
    setEnableForwarding(configuration.getBoolean("enableForwarding", false));
    super.configure(configuration);
}

From source file:org.apache.james.user.lib.AbstractUsersRepository.java

/**
 * @see/*from  w ww.j a  va 2s  . c  om*/
 * org.apache.james.lifecycle.api.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)
 */
public void configure(HierarchicalConfiguration configuration) throws ConfigurationException {

    virtualHosting = configuration.getBoolean("enableVirtualHosting", getDefaultVirtualHostingValue());

    doConfigure(configuration);
}