/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at
* trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable,
* add the following below this CDDL HEADER, with the fields enclosed
* by brackets "[]" replaced with your own identifying information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
*
* Copyright 2006-2010 Sun Microsystems, Inc.
* Portions Copyright 2013 ForgeRock AS.
*/
/**
* Represents the contents of an OpenDS configuration file.
*/
public class Configuration {
/**
* Create a Configuration from a file.
* @param install of which this configuration is part
* @param file config.ldif file
*/
throw new NullPointerException("config file cannot be null");
}
throw new NullPointerException("config file cannot be null");
} else if (
// Leave open the possibility that the file might be
// config.ldif.<svn rev>
throw new IllegalArgumentException("file must be a config.ldif file");
}
}
/**
* Returns the list of directory manager dns as they appear in the
* configuration file.
*
* @return the list of directory manager dns as they appear in the
* configuration file.
* @throws IOException if there were problems reading the information from
* the configuration file.
*/
return getConfigurationValues("ds-cfg-alternate-bind-dn");
}
/**
* Provides the LDAP port as is specified in the config.ldif file.
*
* @return the LDAP port specified in the config.ldif file.
* @throws IOException if there were problems reading the information from
* the configuration file.
*/
return getLDAPPort("ds-cfg-listen-port");
}
/**
* Provides the administration port as is specified in the config.ldif file.
*
* @return the administration port specified in the config.ldif file.
* @throws IOException if there were problems reading the information from
* the configuration file.
*/
{
return getAdminConnectorPort("ds-cfg-listen-port");
}
/**
* Tells whether this server is configured as a replication server or not.
* @return <CODE>true</CODE> if the server is configured as a Replication
* Server and <CODE>false</CODE> otherwise.
* @throws IOException if there were problems reading the information from
* the configuration file.
*/
{
return getReplicationPort() != -1;
}
/**
* Provides the Replication port as is specified in the config.ldif file.
* Returns -1 if this server is not a Replication Server.
*
* @return the Replication port specified in the config.ldif file.
* @throws IOException if there were problems reading the information from
* the configuration file.
*/
int port = -1;
if (index != -1) {
if (index1 != -1) {
int index2 =
if (index2 != -1) {
try {
} catch (NumberFormatException nfe) {
// do nothing;
}
}
}
}
return port;
}
/**
* Returns the list of paths where the logs files are located as they appear
* in the configuration file.
*
* @return the list of paths where the logs files are located as they appear
* in the configuration file.
* @throws IOException if there were problems reading the information from
* the configuration file.
*/
return getConfigurationValues("ds-cfg-log-file");
}
{
int port = -1;
if (index1 != -1) {
int index2 =
if (index2 != -1) {
try {
} catch (NumberFormatException nfe) {
// do nothing;
}
}
}
return port;
}
if (index != -1) {
}
return -1;
}
if (index != -1) {
}
return -1;
}
/**
* Indicates whether the config.ldif file has been modified (compared to what
* we had in the zip file). This is used to know if we have configured the
* current binaries or not.
*
* @return <CODE>true</CODE> if the config.ldif file has been modified, or
* <CODE>false</CODE> if not.
* @throws IOException if there were problems reading the information from
* the configuration file.
*/
if (!isConfigFileModified) {
// TODO: this is not really stable
// Note: a better way might be to diff this file with
// /config/ldif/upgrade/config.ldif.<svn rev>
}
return isConfigFileModified;
}
/**
* Returns a Set of relative paths containing the log paths outside the
* installation.
* @return a Set of relative paths containing the log paths outside the
* installation.
* @throws IOException if there is trouble reading the config file
*/
throws IOException
{
return getOutsidePaths(getLogPaths());
}
/**
* Returns a Set of relative paths containing the db paths outside the
* installation.
* @return a Set of relative paths containing the db paths outside the
* installation.
* @throws IOException if there is trouble reading the config file
*/
throws IOException
{
return getOutsidePaths(getDatabasePaths());
}
if (pathFile.isAbsolute()) {
} else {
}
}
}
return outsidePaths;
}
/**
* Provides the contents of the config.ldif file in a String.
*
* @return a String representing the contents of the config.ldif file.
* @throws IOException if there was a problem reading the file
*/
load();
}
return contents;
}
/**
* Provides the contents of the config.ldif file in a lower case String.
*
* @return a lower case String representing the contents of the config.ldif
* file.
* @throws IOException if there was a problem reading the file
*/
if (lowerCaseContents == null) {
load();
}
return lowerCaseContents;
}
/**
* Returns the list of paths where the databases are installed as they appear
* in the configuration file.
*
* @return the list of paths where the databases are installed as they appear
* in the configuration file.
* @throws IOException if there is a problem reading the config file.
*/
return getConfigurationValues("ds-cfg-db-directory");
}
/**
* Returns the list of base dns as they appear in the configuration file.
*
* @return the list of base dns as they appear in the configuration file.
* @throws IOException if there is a problem reading the config file.
*/
return getConfigurationValues("ds-cfg-base-dn");
}
/**
* Loads the contents of the configuration file into memory.
* @throws IOException if there were problems loading the file
*/
// We do not care about encoding: we are just interested in the ports
}
}
throws IOException
{
attrName += ":";
while (index1 != -1) {
// Assume end of file
} else {
}
}
}
return set;
}
}