📄 cmssetupbean.java
字号:
setExtProperty("db.user.driver", userDriver);
setExtProperty("db.user.sqlmanager", sqlManager);
setExtProperty("db.project.driver", projectDriver);
setExtProperty("db.project.sqlmanager", sqlManager);
setExtProperty("db.workflow.driver", workflowDriver);
setExtProperty("db.workflow.sqlmanager", sqlManager);
setExtProperty("db.backup.driver", backupDriver);
setExtProperty("db.backup.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);
}
/**
* @see org.opencms.main.I_CmsShellCommands#shellExit()
*/
public void shellExit() {
System.out.println();
System.out.println();
System.out.println("The setup is finished!\nThe OpenCms system used for the setup will now shut down.");
}
/**
* @see org.opencms.main.I_CmsShellCommands#shellStart()
*/
public void shellStart() {
System.out.println();
System.out.println("Starting Workplace import and database setup for OpenCms!");
String[] copy = Messages.COPYRIGHT_BY_ALKACON;
for (int i = copy.length - 1; i >= 0; i--) {
System.out.println(copy[i]);
}
System.out.println("This is OpenCms " + OpenCms.getSystemInfo().getVersionName());
System.out.println();
System.out.println();
}
/**
* Sorts the modules for display.<p>
*
* @param modules the list of {@link CmsModule} objects
*
* @return a sorted list of module names
*/
public List sortModules(Collection modules) {
List aux = new ArrayList(modules);
Collections.sort(aux, new Comparator() {
public int compare(Object o1, Object o2) {
CmsModule module1 = (CmsModule)o1;
CmsModule module2 = (CmsModule)o2;
return getDisplayForModu
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -