📄 cmssetupbean.java
字号:
if (new File(m_configRfsPath + file).isFile()) {
String backupFile = file + CmsConfigurationManager.POSTFIX_ORI;
String tempFile = file + ".tmp";
m_errors.clear();
if (backup) {
// make a backup copy
copyFile(file, FOLDER_BACKUP + backupFile);
}
//save to temporary file
copyFile(file, tempFile);
// save properties
save(properties, tempFile, file);
// delete temp file
File temp = new File(m_configRfsPath + tempFile);
temp.delete();
} else {
m_errors.add("No valid file: " + file + "\n");
}
}
/**
* Sets the database drivers to the given value.<p>
*
* @param databaseKey the key of the selected database server (e.g. "mysql", "generic" or "oracle")
*/
public void setDatabase(String databaseKey) {
m_databaseKey = databaseKey;
String vfsDriver = getDbProperty(m_databaseKey + ".vfs.driver");
String userDriver = getDbProperty(m_databaseKey + ".user.driver");
String projectDriver = getDbProperty(m_databaseKey + ".project.driver");
String historyDriver = getDbProperty(m_databaseKey + ".history.driver");
String sqlManager = getDbProperty(m_databaseKey + ".sqlmanager");
setExtProperty("db.name", m_databaseKey);
setExtProperty("db.vfs.driver", vfsDriver);
setExtProperty("db.vfs.sqlmanager", sqlManager);
setExtProperty("db.user.driver", userDriver);
setExtProperty("db.user.sqlmanager", sqlManager);
setExtProperty("db.project.driver", projectDriver);
setExtProperty("db.project.sqlmanager", sqlManager);
setExtProperty("db.history.driver", historyDriver);
setExtProperty("db.history.sqlmanager", sqlManager);
}
/**
* Sets the database name.<p>
*
* @param db the database name to set
*/
public void setDb(String db) {
setDbProperty(m_databaseKey + ".dbname", db);
}
/**
* Sets the JDBC connect URL parameters.<p>
*
* @param value the JDBC connect URL parameters
*/
public void setDbConStrParams(String value) {
setDbProperty(m_databaseKey + ".constr.params", value);
}
/**
* Sets the database create statement.<p>
*
* @param dbCreateConStr the database create statement
*/
public void setDbCreateConStr(String dbCreateConStr) {
setDbProperty(m_databaseKey + ".constr", dbCreateConStr);
}
/**
* Sets the password used for the initial OpenCms database creation.<p>
*
* This password will not be stored permanently,
* but used only in the setup wizard.<p>
*
* @param dbCreatePwd the password used for the initial OpenCms database creation
*/
public void setDbCreatePwd(String dbCreatePwd) {
m_dbCreatePwd = dbCreatePwd;
}
/**
* Set the database user that is used to connect to the database.<p>
*
* @param dbCreateUser the user to set
*/
public void setDbCreateUser(String dbCreateUser) {
setDbProperty(m_databaseKey + ".user", dbCreateUser);
}
/**
* Sets the database driver belonging to the database.<p>
*
* @param driver name of the opencms driver
*/
public void setDbDriver(String driver) {
setDbProperty(m_databaseKey + ".driver", driver);
}
/**
* Sets the needed database parameters.<p>
*
* @param request the http request
* @param provider the db provider
*
* @return true if already submitted
*/
public boolean setDbParamaters(HttpServletRequest request, String provider) {
String conStr = request.getParameter("dbCreateConStr");
// store the DB provider
m_provider = provider;
boolean isFormSubmitted = ((request.getParameter("submit") != null) && (conStr != null));
if (conStr == null) {
conStr = "";
}
String database = "";
if (provider.equals(MYSQL_PROVIDER)) {
database = request.getParameter("db");
} else if (provider.equals(POSTGRESQL_PROVIDER)) {
database = request.getParameter("dbName");
}
if (provider.equals(MYSQL_PROVIDER) || provider.equals(POSTGRESQL_PROVIDER)) {
isFormSubmitted = (isFormSubmitted && (database != null));
}
if (isInitialized()) {
String createDb = request.getParameter("createDb");
if (createDb == null) {
createDb = "";
}
String createTables = request.getParameter("createTables");
if (createTables == null) {
createTables = "";
}
if (isFormSubmitted) {
if (provider.equals(POSTGRESQL_PROVIDER)) {
setDb(database);
String templateDb = request.getParameter("templateDb");
setDbProperty(getDatabase() + ".templateDb", templateDb);
setDbProperty(getDatabase() + ".newDb", database);
if (!conStr.endsWith("/")) {
conStr += "/";
}
setDbProperty(getDatabase() + ".constr", conStr + getDbProperty(getDatabase() + ".templateDb"));
setDbProperty(getDatabase() + ".constr.newDb", conStr + getDbProperty(getDatabase() + ".newDb"));
conStr += database;
} else if (provider.equals(MYSQL_PROVIDER) || provider.equals(POSTGRESQL_PROVIDER)) {
if (!conStr.endsWith("/")) {
conStr += "/";
}
conStr += database;
}
setDbWorkConStr(conStr);
if (provider.equals(POSTGRESQL_PROVIDER)) {
setDb(database);
}
String dbCreateUser = request.getParameter("dbCreateUser");
String dbCreatePwd = request.getParameter("dbCreatePwd");
String dbWorkUser = request.getParameter("dbWorkUser");
String dbWorkPwd = request.getParameter("dbWorkPwd");
setDbCreateUser(dbCreateUser);
setDbCreatePwd(dbCreatePwd);
if (dbWorkUser.equals("")) {
dbWorkUser = request.getContextPath();
}
if (dbWorkUser.equals("")) {
dbWorkUser = "opencms";
}
if (dbWorkUser.startsWith("/")) {
dbWorkUser = dbWorkUser.substring(1, dbWorkUser.length());
}
setDbWorkUser(dbWorkUser);
setDbWorkPwd(dbWorkPwd);
if (provider.equals(ORACLE_PROVIDER)) {
String dbDefaultTablespace = request.getParameter("dbDefaultTablespace");
String dbTemporaryTablespace = request.getParameter("dbTemporaryTablespace");
String dbIndexTablespace = request.getParameter("dbIndexTablespace");
setDbProperty(getDatabase() + ".defaultTablespace", dbDefaultTablespace);
setDbProperty(getDatabase() + ".temporaryTablespace", dbTemporaryTablespace);
setDbProperty(getDatabase() + ".indexTablespace", dbIndexTablespace);
}
Map replacer = new HashMap();
if (!provider.equals(MYSQL_PROVIDER)) {
replacer.put("${user}", dbWorkUser);
replacer.put("${password}", dbWorkPwd);
}
if (provider.equals(MYSQL_PROVIDER) || provider.equals(POSTGRESQL_PROVIDER)) {
replacer.put("${database}", database);
}
if (provider.equals(ORACLE_PROVIDER)) {
replacer.put("${defaultTablespace}", getDbProperty(getDatabase() + ".defaultTablespace"));
replacer.put("${indexTablespace}", getDbProperty(getDatabase() + ".indexTablespace"));
replacer.put("${temporaryTablespace}", getDbProperty(getDatabase() + ".temporaryTablespace"));
}
setReplacer(replacer);
if (provider.equals(GENERIC_PROVIDER)
|| provider.equals(ORACLE_PROVIDER)
|| provider.equals(MAXDB_PROVIDER)) {
request.getSession().setAttribute("createTables", createTables);
}
request.getSession().setAttribute("createDb", createDb);
} else {
String dbName = "opencms";
// initialize the database name with the app name
if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(request.getContextPath())) {
dbName = request.getContextPath().substring(1);
}
if (provider.equals(ORACLE_PROVIDER)
|| provider.equals(POSTGRESQL_PROVIDER)
|| provider.equals(MAXDB_PROVIDER)) {
setDbWorkUser(dbName);
} else {
setDb(dbName);
}
}
}
return isFormSubmitted;
}
/**
* This method sets the value for a given key in the database properties.<p>
*
* @param key The key of the property
* @param value The value of the property
*/
public void setDbProperty(String key, String value) {
// extract the database key out of the entire key
String databaseKey = key.substring(0, key.indexOf('.'));
Map databaseProperties = (Map)getDatabaseProperties().get(databaseKey);
databaseProperties.put(key, value);
}
/**
* Sets the connection string to the database to the given value.<p>
*
* @param dbWorkConStr the connection string used by the OpenCms core
*/
public void setDbWorkConStr(String dbWorkConStr) {
String driver = getDbProperty(m_databaseKey + ".driver");
String pool = '.' + getPool() + '.';
setExtProperty(CmsDbPool.KEY_DATABASE_POOL + pool + CmsDbPool.KEY_JDBC_DRIVER, driver);
setExtProperty(CmsDbPool.KEY_DATABASE_POOL + pool + CmsDbPool.KEY_JDBC_URL, dbWorkConStr);
setExtProperty(CmsDbPool.KEY_DATABASE_POOL + pool + CmsDbPool.KEY_TEST_QUERY, getDbTestQuery());
setExtProperty(CmsDbPool.KEY_DATABASE_POOL + pool + CmsDbPool.KEY_JDBC_URL_PARAMS, getDbConStrParams());
}
/**
* Sets the password of the database to the given value.<p>
*
* @param dbWorkPwd the password for the OpenCms database user
*/
public void setDbWorkPwd(String dbWorkPwd) {
setExtProperty(CmsDbPool.KEY_DATABASE_POOL + '.' + getPool() + '.' + CmsDbPool.KEY_PASSWORD, dbWorkPwd);
}
/**
* Sets the user of the database to the given value.<p>
*
* @param dbWorkUser the database user used by the opencms core
*/
public void setDbWorkUser(String dbWorkUser) {
setExtProperty(CmsDbPool.KEY_DATABASE_POOL + '.' + getPool() + '.' + CmsDbPool.KEY_POOL_USER, dbWorkUser);
}
/**
* Set the mac ethernet address, required for UUID generation.<p>
*
* @param ethernetAddress the mac addess to set
*/
public void setEthernetAddress(String ethernetAddress) {
setExtProperty("server.ethernet.address", ethernetAddress);
}
/**
* Sets the list with the package names of the modules to be installed.<p>
*
* @param value a string with the package names of the modules to be installed delimited by the pipe symbol "|"
*/
public void setInstallModules(String value) {
m_installModules = CmsStringUtil.splitAsList(value, "|", true);
try {
m_installModules = CmsModuleManager.topologicalSort(m_installModules, getModuleFolder());
} catch (CmsConfigurationException e) {
throw new RuntimeException(e);
}
}
/**
* Sets the replacer.<p>
*
* @param map the replacer to set
*/
public void setReplacer(Map map) {
m_replacer = map;
}
/**
* Sets the OpenCms server name.<p>
*
* @param name the OpenCms server name
*/
public void setServerName(String name) {
setExtProperty("server.name", name);
}
/**
* Sets the OpenCms workplace site.<p>
*
* @param newSite the OpenCms workplace site
*/
public void setWorkplaceSite(String newSite) {
String oldSite = getWorkplaceSite();
// get the site list
String siteList = getExtProperty("site.root.list");
// replace old site URL in site list with new site URL
siteList = CmsStringUtil.substitute(siteList, oldSite, newSite);
setExtProperty("site.root.list", siteList);
setExtProperty("site.workplace", newSite);
}
/**
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -