Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1045 → Rev 1046

/hostadmiral/trunk/src/ak/hostadmiral/util/ConfigInit.java
7,7 → 7,7
/**
* This method is called by initialization from config file.
*
* @param params map String -> String with pairs of param name -> value
* @param params map String -> String[] with pairs of param name -> values
* from the initializaion file
*/
public void init(Map params)
/hostadmiral/trunk/src/ak/hostadmiral/listener/file/FileListener.java
41,7 → 41,7
 
public void init(Map params)
{
setFileName((String)params.get("fileName"));
setFileName(((String[])params.get("fileName"))[0]);
 
UserManager.getInstance().addCreatedListener(this);
UserManager.getInstance().addModifiedListener(this);
/hostadmiral/trunk/src/ak/hostadmiral/core/model/UserManager.java
22,6 → 22,7
{
private UserStore store;
private UserValidator userValidator;
private Class[] passwordStores;
 
private Collection createdListeners = new ArrayList();
private Collection modifiedListeners = new ArrayList();
45,14 → 46,10
 
User user = new User();
 
if(!user.mayChangeBoss(editor)) { // ordinal user can create only own "subusers"
if(!user.mayChangeBoss(editor)) // ordinal user can create only own "subusers"
user.setBoss(editor);
}
 
// FIXME: make this configurable
user.addPasswordStore(new PasswordStoreMd5());
user.addPasswordStore(new PasswordStoreCrypt());
user.addPasswordStore(new PasswordStorePlain());
setUserPasswordStores(user);
 
return user;
}
315,6 → 312,20
}
}
 
protected void setUserPasswordStores(User user)
throws ModelException
{
if(passwordStores == null) return;
 
try {
for(int i = 0; i < passwordStores.length; i++)
user.addPasswordStore((PasswordStore)passwordStores[i].newInstance());
}
catch(Exception ex) {
throw new ModelException(ex);
}
}
 
public static final Integer SORT_LOGIN = new Integer(1);
 
public static final Comparator LOGIN_COMPARATOR = new LoginComparator();
380,14 → 391,22
try {
userManager = this;
 
Class c = Class.forName((String)params.get("store"));
Class c = Class.forName(((String[])params.get("store"))[0]);
store = (UserStore)c.newInstance();
 
String userValidatorName = (String)params.get("userValidator");
String[] userValidatorName = (String[])params.get("userValidator");
if(userValidatorName != null) {
Class c2 = Class.forName(userValidatorName);
Class c2 = Class.forName(userValidatorName[0]);
userValidator = (UserValidator)c2.newInstance();
}
 
String[] passwordStoreNames = (String[])params.get("passwordStore");
if(passwordStoreNames != null) {
passwordStores = new Class[passwordStoreNames.length];
for(int i = 0; i < passwordStoreNames.length; i++) {
passwordStores[i] = Class.forName(passwordStoreNames[i]);
}
}
}
catch(Exception ex) {
throw new ModelException(ex);
/hostadmiral/trunk/src/ak/hostadmiral/core/model/InetDomainManager.java
294,7 → 294,7
try {
inetDomainManager = this;
 
Class c = Class.forName((String)params.get("store"));
Class c = Class.forName(((String[])params.get("store"))[0]);
store = (InetDomainStore)c.newInstance();
}
catch(Exception ex) {
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailboxManager.java
23,6 → 23,7
InetDomainDeletingListener
{
private MailboxStore store;
private Class[] passwordStores;
 
private Collection createdListeners = new ArrayList();
private Collection modifiedListeners = new ArrayList();
44,12 → 45,8
if(!allowedToCreate(editor)) throw new ModelSecurityException();
 
Mailbox mailbox = new Mailbox();
setMailboxPasswordStores(mailbox);
 
// FIXME: make this configurable
mailbox.addPasswordStore(new PasswordStoreMd5());
mailbox.addPasswordStore(new PasswordStoreCrypt());
mailbox.addPasswordStore(new PasswordStorePlain());
 
return mailbox;
}
 
315,6 → 312,20
return cascade;
}
 
protected void setMailboxPasswordStores(Mailbox mailbox)
throws ModelException
{
if(passwordStores == null) return;
 
try {
for(int i = 0; i < passwordStores.length; i++)
mailbox.addPasswordStore((PasswordStore)passwordStores[i].newInstance());
}
catch(Exception ex) {
throw new ModelException(ex);
}
}
 
public static final Integer SORT_LOGIN = new Integer(1);
public static final Integer SORT_DOMAIN = new Integer(2);
 
381,8 → 392,16
try {
mailboxManager = this;
 
Class c = Class.forName((String)params.get("store"));
Class c = Class.forName(((String[])params.get("store"))[0]);
store = (MailboxStore)c.newInstance();
 
String[] passwordStoreNames = (String[])params.get("passwordStore");
if(passwordStoreNames != null) {
passwordStores = new Class[passwordStoreNames.length];
for(int i = 0; i < passwordStoreNames.length; i++) {
passwordStores[i] = Class.forName(passwordStoreNames[i]);
}
}
}
catch(Exception ex) {
throw new ModelException(ex);
/hostadmiral/trunk/src/ak/hostadmiral/core/model/SystemUserManager.java
339,7 → 339,7
try {
systemUserManager = this;
 
Class c = Class.forName((String)params.get("store"));
Class c = Class.forName(((String[])params.get("store"))[0]);
store = (SystemUserStore)c.newInstance();
}
catch(Exception ex) {
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasManager.java
326,7 → 326,7
try {
mailAliasManager = this;
 
Class c = Class.forName((String)params.get("store"));
Class c = Class.forName(((String[])params.get("store"))[0]);
store = (MailAliasStore)c.newInstance();
}
catch(Exception ex) {
/hostadmiral/trunk/src/ak/hostadmiral/core/model/MailAliasDestinationManager.java
119,7 → 119,7
try {
mailAliasDestinationManager = this;
 
Class c = Class.forName((String)params.get("store"));
Class c = Class.forName(((String[])params.get("store"))[0]);
store = (MailAliasDestinationStore)c.newInstance();
}
catch(Exception ex) {
/hostadmiral/trunk/src/ak/hostadmiral/core/config/ConfigRoot.java
2,6 → 2,7
 
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import ak.hostadmiral.util.ModelException;
 
public class ConfigRoot
61,14 → 62,26
+ ", second - " + second.versionMajor);
 
this.dataSource = dataSource.merge(second.dataSource);
this.initializations.addAll(second.initializations); // FIXME: replace dublicates
 
for(Iterator i = second.initializations.iterator(); i.hasNext(); ) {
ConfigInitialization ci = (ConfigInitialization)i.next();
 
this.initializations.remove(ci);
this.initializations.add(ci);
}
 
return this;
}
 
public String toString()
{
StringBuffer initStr = new StringBuffer();
for(Iterator i = initializations.iterator(); i.hasNext(); ) {
ConfigInitialization ci = (ConfigInitialization)i.next();
initStr.append(ci);
}
 
return "hostadmiral config v" + versionMajor + "." + versionMinor + "\n"
+ dataSource + "\t" + initializations;
+ dataSource + "\n\tinitializations:\n" + initStr.toString() + "end of config";
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/config/ConfigInitParam.java
1,12 → 1,13
package ak.hostadmiral.core.config;
 
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
 
public class ConfigInitParam
{
private String name;
private String value;
private List values = new ArrayList();
 
public String getName()
{
18,18 → 19,25
this.name = name;
}
 
public String getValue()
public List getValues()
{
return value;
return values;
}
 
public void setValue(String value)
{
this.value = value;
values.add(value);
}
 
public String toString()
{
return "\t\t\tinit param " + name + "=" + value + " ";
StringBuffer valuesStr = new StringBuffer();
for(Iterator i = values.iterator(); i.hasNext(); ) {
String s = (String)i.next();
if(valuesStr.length() > 0) valuesStr.append(", ");
valuesStr.append(s);
}
 
return "\t\t\t" + name + "=" + valuesStr + "\n";
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/config/ConfigInitialization.java
1,12 → 1,14
package ak.hostadmiral.core.config;
 
import java.util.List;
import java.util.Iterator;
import java.util.ArrayList;
 
public class ConfigInitialization
{
private String className;
private List params = new ArrayList(); // List(ConfigInitParam)
private String className;
private boolean ignore = false;
private List params = new ArrayList(); // List(ConfigInitParam)
 
public String getClassName()
{
18,6 → 20,21
this.className = className;
}
 
public boolean getIgnore()
{
return ignore;
}
 
public void setIgnore(boolean ignore)
{
this.ignore = ignore;
}
 
public void setIgnore(String ignore)
{
this.ignore = Boolean.valueOf(ignore).booleanValue();
}
 
public List getInitParam()
{
return params;
28,8 → 45,33
params.add(param);
}
 
public boolean equals(Object obj)
{
if(!(obj instanceof ConfigInitialization)) return false;
 
ConfigInitialization second = (ConfigInitialization)obj;
 
return (this.className != null && second.className != null
&& this.className.equals(second.className));
}
 
public int hashCode()
{
if(className == null)
return 0;
else
return className.hashCode();
}
 
public String toString()
{
return "\t\tinitialization " + className + ": " + params + "\n";
StringBuffer paramsStr = new StringBuffer();
for(Iterator i = params.iterator(); i.hasNext(); ) {
ConfigInitParam p = (ConfigInitParam)i.next();
paramsStr.append(p);
}
 
return "\t\t" + className + (ignore ? " (ignore)" : "") + ":\n"
+ paramsStr.toString() + "\n";
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/config/ConfigDataSource.java
88,7 → 88,8
return "\tdata source: " + type + "\n"
+ "\t\tdriver: " + driver + "\n"
+ "\t\tuserName: " + userName + "\n"
+ "\t\tpassword: " + password + "\n"
+ "\t\tpassword: "
+ ((password == null || password.equals("")) ? "(not set)" : "(set)") + "\n"
+ "\t\turl: " + url + "\n"
+ "\t\tdialect: " + dialect + "\n";
}
/hostadmiral/trunk/src/ak/hostadmiral/core/config/Configurator.java
53,15 → 53,15
try {
// get config
ConfigRoot defaultConfig = readConfig(defaultStream);
logger.debug("Default:\n" + defaultConfig);
logger.debug("default:\n" + defaultConfig);
checkConfigVersion("default", defaultConfig);
 
ConfigRoot userConfig = readConfig(userStream);
logger.debug("User:\n" + userConfig);
logger.debug("user:\n" + userConfig);
checkConfigVersion("user", userConfig);
 
config = defaultConfig.merge(userConfig);
logger.debug("Result:\n" + config);
logger.info("result config:\n" + config);
}
catch(Exception ex) {
throw new ModelException("Cannot read config: " + ex);
81,6 → 81,8
for(Iterator i = config.getInitialization().iterator(); i.hasNext(); ) {
ConfigInitialization ci = (ConfigInitialization)i.next();
 
if(ci.getIgnore()) continue;
 
// get class
Class c = null;
try {
107,7 → 109,7
Map params = new HashMap();
for(Iterator j = ci.getInitParam().iterator(); j.hasNext(); ) {
ConfigInitParam p = (ConfigInitParam)j.next();
params.put(p.getName(), p.getValue());
params.put(p.getName(), (String[])p.getValues().toArray(new String[0]));
}
 
o.init(params);
143,6 → 145,8
ConfigInitialization.class);
digester.addBeanPropertySetter("hostadmiral/initializations/initialization/class",
"className");
digester.addBeanPropertySetter("hostadmiral/initializations/initialization/ignore",
"ignore");
digester.addSetNext("hostadmiral/initializations/initialization", "addInitialization");
 
digester.addObjectCreate("hostadmiral/initializations/initialization/init-param",
/hostadmiral/trunk/webapp/WEB-INF/conf/hostadmiral_config.xml.sample
25,5 → 25,11
</init-param>
</initialization>
-->
<!-- To remove one of default initializations
<initialization>
<class>ak.hostadmiral.core.model.MailAliasManager</class>
<ignore>true</ignore>
</initialization>
-->
</initializations>
</hostadmiral>
/hostadmiral/trunk/webapp/WEB-INF/conf/hostadmiral_config.xml.default
59,6 → 59,12
<param-name>userValidator</param-name>
<param-value>ak.hostadmiral.core.model.UserValidatorAtDomain</param-value>
</init-param>
<init-param>
<param-name>passwordStore</param-name>
<param-value>ak.hostadmiral.core.model.PasswordStoreMd5</param-value>
<param-value>ak.hostadmiral.core.model.PasswordStoreCrypt</param-value>
<param-value>ak.hostadmiral.core.model.PasswordStorePlain</param-value>
</init-param>
</initialization>
<initialization>
<class>ak.hostadmiral.core.model.SystemUserManager</class>
80,6 → 86,12
<param-name>store</param-name>
<param-value>ak.hostadmiral.core.model.store.hibernate.MailboxHibernate</param-value>
</init-param>
<init-param>
<param-name>passwordStore</param-name>
<param-value>ak.hostadmiral.core.model.PasswordStoreMd5</param-value>
<param-value>ak.hostadmiral.core.model.PasswordStoreCrypt</param-value>
<param-value>ak.hostadmiral.core.model.PasswordStorePlain</param-value>
</init-param>
</initialization>
<initialization>
<class>ak.hostadmiral.core.model.MailAliasManager</class>