📄 configureuserdatabaseform.java
字号:
package com.sslexplorer.install.forms;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.ActionMapping;
import com.sslexplorer.core.CoreServlet;
import com.sslexplorer.core.PropertyUtil;
import com.sslexplorer.core.UserDatabaseManager;
import com.sslexplorer.properties.PropertyItem;
import com.sslexplorer.security.Constants;
import com.sslexplorer.security.User;
import com.sslexplorer.security.UserDatabase;
import com.sslexplorer.wizard.AbstractWizardSequence;
import com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm;
public class ConfigureUserDatabaseForm extends AbstractWizardPropertiesForm {
final static Log log = LogFactory.getLog(ConfigureUserDatabaseForm.class);
private UserDatabase userDatabase;
public ConfigureUserDatabaseForm() {
super();
}
public String getPropertyScope() {
return "setup";
}
public User getPropertyUser() {
return null;
}
public int getParentCategory() {
return userDatabase.getInstallationPropertyCategory();
}
public boolean getNextAvailable() {
return true;
}
public boolean getPreviousAvailable() {
return true;
}
public boolean getFinishAvailable() {
return false;
}
public String getPage() {
return "/WEB-INF/jsp/content/install/configureUserDatabase.jspf";
}
public String getResourcePrefix() {
return "installation.configureUserDatabase";
}
public String getResourceBundle() {
return "install";
}
public String getPageName() {
return "configureUserDatabase";
}
public String getFocussedField() {
return "";
}
/* (non-Javadoc)
* @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#reset(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest)
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
super.reset(mapping, request);
/* Determine the currently selected user database so it can be used to determine the
* category to display
*/
AbstractWizardSequence seq = getWizardSequence(request);
String udbName = (String)seq.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE, "builtIn");
try {
userDatabase = UserDatabaseManager.getInstance().getUserDatabase(udbName);
try {
if(userDatabase.isOpen()) {
userDatabase.close();
}
userDatabase.open(CoreServlet.getServlet());
} catch(Throwable t) {
// Ignore
}
} catch (Exception e) {
log.error("Failed to get user database " + udbName + ".", e);
}
}
public boolean getAutocomplete() {
return false;
}
public String getProfileScope() {
return Constants.SCOPE_SETUP;
}
/* (non-Javadoc)
* @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#init(com.sslexplorer.wizard.AbstractWizardSequence)
*/
public void init(AbstractWizardSequence sequence, HttpServletRequest request) throws Exception {
super.init(sequence, request);
}
public int getSelectedCategory() {
return getParentCategory();
}
/* (non-Javadoc)
* @see com.sslexplorer.wizard.forms.AbstractWizardPropertiesForm#apply(com.sslexplorer.wizard.AbstractWizardSequence)
*/
public void apply(AbstractWizardSequence sequence) throws Exception {
// First shutdown the user databae
super.apply(sequence);
/* TODO BPS - This sucks a bit. The properties have to be persisted now so the
* user database uses the next settings. Perhaps we need someway of temporarily
* setting properties.
*/
PropertyItem[] items = getPropertyItems();
Properties oldValues = new Properties();
for(int i = 0 ; i < items.length; i++) {
oldValues.setProperty(items[i].getName(), PropertyUtil.getPropertyUtil().setProperty(0, null, items[i].getName(), items[i].getPropertyValue().toString(), null));
}
/*
* LDP - Don't close the database until the properties have been set. This allows us to
* dynamically register the properties in the database open and close methods.
*/
UserDatabase udb = UserDatabaseManager.getInstance().getUserDatabase((String)sequence.getAttribute(SelectUserDatabaseForm.ATTR_USER_DATABASE, "builtIn"));
if(udb.isOpen()) {
udb.close();
}
try {
udb.open(CoreServlet.getServlet());
}
catch(Exception e) {
for(Iterator i = oldValues.entrySet().iterator(); i.hasNext(); ) {
Map.Entry entry = (Map.Entry)i.next();
PropertyUtil.getPropertyUtil().setProperty(0, null, (String)entry.getKey(), (String)entry.getValue(), null);
}
throw e;
}
}
public int getStepIndex() {
return 2;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -