Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1029 → Rev 1030

/hostadmiral/trunk/conf/hostadmiral_config.xml.default
File deleted
/hostadmiral/trunk/conf/hostadmiral_config.xml.sample
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/RightTagBase.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/NoRightsTag.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/DeleteableTag.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/MethodTagBase.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/NotDeleteableTag.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/NotEditableTag.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/ViewableTag.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/NotViewableTag.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/RightsTag.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/EditableTag.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/RightTagBase.java
0,0 → 1,64
package ak.hostadmiral.core.taglib.permission;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
 
import org.apache.struts.util.RequestUtils;
 
import ak.hostadmiral.core.model.User;
import ak.hostadmiral.core.model.ModelObject;
 
public abstract class RightTagBase
extends TagSupport
{
protected User user;
protected ModelObject object;
 
protected String name;
 
public String getName()
{
return name;
}
 
public void setName(String name)
{
this.name = name;
}
 
public void release()
{
super.release();
name = null;
user = null;
}
 
public int doStartTag()
throws JspException
{
user = (User)RequestUtils.lookup(pageContext, "user", "session");
 
Object obj = RequestUtils.lookup(pageContext, name, null);
if(obj == null)
throw new JspException(name + " is null");
if(!(obj instanceof ModelObject))
throw new JspException(name + " must be a ModelObject, but is " + obj.getClass());
 
object = (ModelObject)obj;
 
if(condition())
return EVAL_BODY_INCLUDE;
else
return SKIP_BODY;
}
 
public int doEndTag()
throws JspException
{
return EVAL_PAGE;
}
 
protected abstract boolean condition()
throws JspException;
}
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/EditableTag.java
0,0 → 1,13
package ak.hostadmiral.core.taglib.permission;
 
import javax.servlet.jsp.JspException;
 
public class EditableTag
extends RightTagBase
{
protected boolean condition()
throws JspException
{
return object.editableBy(user);
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/NotEditableTag.java
0,0 → 1,13
package ak.hostadmiral.core.taglib.permission;
 
import javax.servlet.jsp.JspException;
 
public class NotEditableTag
extends RightTagBase
{
protected boolean condition()
throws JspException
{
return !object.editableBy(user);
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/MethodTagBase.java
0,0 → 1,63
package ak.hostadmiral.core.taglib.permission;
 
import java.lang.reflect.Method;
import javax.servlet.jsp.JspException;
 
import ak.hostadmiral.core.model.User;
import org.apache.struts.util.RequestUtils;
 
public abstract class MethodTagBase
extends RightTagBase
{
protected String method;
 
public String getMethod()
{
return method;
}
 
public void setMethod(String method)
{
this.method = method;
}
 
public void release()
{
super.release();
method = null;
}
 
protected boolean condition()
throws JspException
{
Method m;
Object value;
 
// find method
try {
m = object.getClass().getMethod(method, new Class[] { User.class } );
}
catch(NoSuchMethodException ex) {
throw new JspException("Method " + method
+ " with parameter of type user not found");
}
 
// invoke it
try {
value = m.invoke(object, new Object[] { user } );
}
catch(Exception ex) {
throw new JspException("Cannot call " + method + ": " + ex.getMessage());
}
 
// check value type
if(!(value instanceof Boolean))
throw new JspException("Return type of method " + method
+ " must be java.lang.Boolean");
 
return condition(((Boolean)value).booleanValue());
}
 
protected abstract boolean condition(boolean value)
throws JspException;
}
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/NoRightsTag.java
0,0 → 1,15
package ak.hostadmiral.core.taglib.permission;
 
import javax.servlet.jsp.JspException;
 
import org.apache.struts.util.RequestUtils;
 
public class NoRightsTag
extends MethodTagBase
{
protected boolean condition(boolean value)
throws JspException
{
return !value;
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/ViewableTag.java
0,0 → 1,13
package ak.hostadmiral.core.taglib.permission;
 
import javax.servlet.jsp.JspException;
 
public class ViewableTag
extends RightTagBase
{
protected boolean condition()
throws JspException
{
return object.viewableBy(user);
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/NotViewableTag.java
0,0 → 1,13
package ak.hostadmiral.core.taglib.permission;
 
import javax.servlet.jsp.JspException;
 
public class NotViewableTag
extends RightTagBase
{
protected boolean condition()
throws JspException
{
return !object.viewableBy(user);
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/RightsTag.java
0,0 → 1,15
package ak.hostadmiral.core.taglib.permission;
 
import javax.servlet.jsp.JspException;
 
import org.apache.struts.util.RequestUtils;
 
public class RightsTag
extends MethodTagBase
{
protected boolean condition(boolean value)
throws JspException
{
return value;
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/DeleteableTag.java
0,0 → 1,13
package ak.hostadmiral.core.taglib.permission;
 
import javax.servlet.jsp.JspException;
 
public class DeleteableTag
extends RightTagBase
{
protected boolean condition()
throws JspException
{
return object.deleteableBy(user);
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/taglib/permission/NotDeleteableTag.java
0,0 → 1,13
package ak.hostadmiral.core.taglib.permission;
 
import javax.servlet.jsp.JspException;
 
public class NotDeleteableTag
extends RightTagBase
{
protected boolean condition()
throws JspException
{
return !object.deleteableBy(user);
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/servlet/ListenerRegistratorServlet.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/core/servlet/ConfigServlet.java
0,0 → 1,39
package ak.hostadmiral.core.servlet;
 
import java.io.IOException;
 
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
 
import org.apache.log4j.Logger;
 
import ak.hostadmiral.util.ModelException;
import ak.hostadmiral.core.config.Configurator;
 
public class ConfigServlet
extends GenericServlet
{
private static final Logger logger = Logger.getLogger(ConfigServlet.class);
 
public void init()
throws ServletException
{
try {
Configurator.getInstance().setDefaultStream(getServletContext().getResourceAsStream(
"/WEB-INF/conf/hostadmiral_config.xml.default"));
Configurator.getInstance().setUserStream(getServletContext().getResourceAsStream(
"/WEB-INF/conf/hostadmiral_config.xml"));
Configurator.getInstance().configure();
}
catch(ModelException ex) {
throw new ServletException(ex);
}
}
 
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException
{
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/config/ConfigDataSource.java
0,0 → 1,95
package ak.hostadmiral.core.config;
 
public class ConfigDataSource
{
private String type;
private String driver;
private String userName;
private String password;
private String url;
private String dialect;
 
public String getType()
{
return type;
}
 
public void setType(String type)
{
this.type = type;
}
 
public String getDriver()
{
return driver;
}
 
public void setDriver(String driver)
{
this.driver = driver;
}
 
public String getUserName()
{
return userName;
}
 
public void setUserName(String userName)
{
this.userName = userName;
}
 
public String getPassword()
{
return password;
}
 
public void setPassword(String password)
{
this.password = password;
}
 
public String getUrl()
{
return url;
}
 
public void setUrl(String url)
{
this.url = url;
}
 
public String getDialect()
{
return dialect;
}
 
public void setDialect(String dialect)
{
this.dialect = dialect;
}
 
public ConfigDataSource merge(ConfigDataSource second)
{
if(second == null) return this;
 
if(second.type != null) this.type = second.type;
if(second.driver != null) this.driver = second.driver;
if(second.userName != null) this.userName = second.userName;
if(second.password != null) this.password = second.password;
if(second.url != null) this.url = second.url;
if(second.dialect != null) this.dialect = second.dialect;
 
return this;
}
 
public String toString()
{
return "\tdata source: " + type + "\n"
+ "\t\tdriver: " + driver + "\n"
+ "\t\tuserName: " + userName + "\n"
+ "\t\tpassword: " + password + "\n"
+ "\t\turl: " + url + "\n"
+ "\t\tdialect: " + dialect + "\n";
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/config/Configurator.java
0,0 → 1,143
package ak.hostadmiral.core.config;
 
import java.util.Iterator;
import java.util.Map;
import java.util.HashMap;
import java.io.IOException;
import java.io.InputStream;
import org.xml.sax.SAXException;
 
import org.apache.log4j.Logger;
import org.apache.commons.digester.Digester;
 
import ak.hostadmiral.util.ConfigInit;
import ak.hostadmiral.util.ModelException;
import ak.hostadmiral.core.model.*;
 
public class Configurator
{
private static final Logger logger = Logger.getLogger(Configurator.class);
 
private InputStream defaultStream;
private InputStream userStream;
 
public void setDefaultStream(InputStream defaultStream)
{
this.defaultStream = defaultStream;
}
 
public void setUserStream(InputStream userStream)
{
this.userStream = userStream;
}
 
public void configure()
throws ModelException
{
ConfigRoot config;
try {
// get config
ConfigRoot defaultConfig = readConfig(defaultStream);
logger.debug("Default:\n" + defaultConfig);
 
ConfigRoot userConfig = readConfig(userStream);
logger.debug("User:\n" + userConfig);
 
config = defaultConfig.merge(userConfig);
logger.debug("Result:\n" + config);
}
catch(Exception ex) {
throw new ModelException("Cannot read config: " + ex);
}
 
// init data source
 
// init classes
for(Iterator i = config.getInitialization().iterator(); i.hasNext(); ) {
ConfigInitialization ci = (ConfigInitialization)i.next();
 
// get class
Class c = null;
try {
c = Class.forName(ci.getClassName());
}
catch(ClassCastException ex) {
logger.error("Class " + ci.getClassName() + " has wrong type", ex);
}
catch(Exception ex) {
logger.error("Cannot get class " + ci.getClassName(), ex);
}
if(c == null) continue;
 
if(ConfigInit.class.isAssignableFrom(c)) {
ConfigInit o = null;
try {
o = (ConfigInit)c.newInstance();
}
catch(Exception ex) {
logger.error("Cannot get instance of class " + c.getClass().getName(), ex);
}
if(o == null) continue;
 
Map params = new HashMap();
for(Iterator j = ci.getInitParam().iterator(); j.hasNext(); ) {
ConfigInitParam p = (ConfigInitParam)j.next();
params.put(p.getName(), p.getValue());
}
 
o.init(params);
}
}
}
 
private ConfigRoot readConfig(InputStream in)
throws IOException, SAXException
{
return (ConfigRoot)createDigester().parse(in);
}
 
private Digester createDigester()
{
Digester digester = new Digester();
digester.setValidating(false);
 
digester.addObjectCreate("hostadmiral", ConfigRoot.class);
digester.addSetProperties("hostadmiral/version", "major", "versionMajor");
digester.addSetProperties("hostadmiral/version", "minor", "versionMinor");
 
digester.addObjectCreate("hostadmiral/datasource", ConfigDataSource.class);
digester.addBeanPropertySetter("hostadmiral/datasource/type", "type");
digester.addBeanPropertySetter("hostadmiral/datasource/settings/driver", "driver");
digester.addBeanPropertySetter("hostadmiral/datasource/settings/username", "userName");
digester.addBeanPropertySetter("hostadmiral/datasource/settings/password", "password");
digester.addBeanPropertySetter("hostadmiral/datasource/settings/url", "url");
digester.addBeanPropertySetter("hostadmiral/datasource/settings/dialect", "dialect");
digester.addSetNext("hostadmiral/datasource", "setDataSource");
 
digester.addObjectCreate("hostadmiral/initializations/initialization",
ConfigInitialization.class);
digester.addBeanPropertySetter("hostadmiral/initializations/initialization/class",
"className");
digester.addSetNext("hostadmiral/initializations/initialization", "addInitialization");
 
digester.addObjectCreate("hostadmiral/initializations/initialization/init-param",
ConfigInitParam.class);
digester.addBeanPropertySetter(
"hostadmiral/initializations/initialization/init-param/param-name", "name");
digester.addBeanPropertySetter(
"hostadmiral/initializations/initialization/init-param/param-value", "value");
digester.addSetNext("hostadmiral/initializations/initialization/init-param",
"addInitParam");
 
return digester;
}
 
private static Configurator configurator;
 
public static Configurator getInstance()
{
if(configurator == null) configurator = new Configurator();
 
return configurator;
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/config/ConfigRoot.java
0,0 → 1,74
package ak.hostadmiral.core.config;
 
import java.util.List;
import java.util.ArrayList;
import ak.hostadmiral.util.ModelException;
 
public class ConfigRoot
{
private int versionMajor;
private int versionMinor;
private ConfigDataSource dataSource;
private List initializations = new ArrayList(); // List(ConfigInitialization)
 
public int getVersionMajor()
{
return versionMajor;
}
 
public void setMajor(String major)
{
this.versionMajor = Integer.parseInt(major);
}
 
public int getVersionMinor()
{
return versionMinor;
}
 
public void setMinor(String minor)
{
this.versionMinor = Integer.parseInt(minor);
}
 
public ConfigDataSource getDataSource()
{
return dataSource;
}
 
public void setDataSource(ConfigDataSource dataSource)
{
this.dataSource = dataSource;
}
 
public List getInitialization()
{
return initializations;
}
 
public void addInitialization(ConfigInitialization initialization)
{
initializations.add(initialization);
}
 
public ConfigRoot merge(ConfigRoot second)
throws ModelException
{
if(second == null) return this;
 
if(this.versionMajor != second.versionMajor)
throw new ModelException("First config has version " + this.versionMajor
+ ", second - " + second.versionMajor);
 
this.dataSource = dataSource.merge(second.dataSource);
this.initializations.addAll(second.initializations);
 
return this;
}
 
public String toString()
{
return "hostadmiral config v" + versionMajor + "." + versionMinor + "\n"
+ dataSource + "\t" + initializations;
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/config/ConfigInitParam.java
0,0 → 1,35
package ak.hostadmiral.core.config;
 
import java.util.Map;
import java.util.HashMap;
 
public class ConfigInitParam
{
private String name;
private String value;
 
public String getName()
{
return name;
}
 
public void setName(String name)
{
this.name = name;
}
 
public String getValue()
{
return value;
}
 
public void setValue(String value)
{
this.value = value;
}
 
public String toString()
{
return "\t\t\tinit param " + name + "=" + value + " ";
}
}
/hostadmiral/trunk/src/ak/hostadmiral/core/config/ConfigInitialization.java
0,0 → 1,35
package ak.hostadmiral.core.config;
 
import java.util.List;
import java.util.ArrayList;
 
public class ConfigInitialization
{
private String className;
private List params = new ArrayList(); // List(ConfigInitParam)
 
public String getClassName()
{
return className;
}
 
public void setClassName(String className)
{
this.className = className;
}
 
public List getInitParam()
{
return params;
}
 
public void addInitParam(ConfigInitParam param)
{
params.add(param);
}
 
public String toString()
{
return "\t\tinitialization " + className + ": " + params + "\n";
}
}
/hostadmiral/trunk/src/ak/hostadmiral/util/ConfigInit.java
0,0 → 1,14
package ak.hostadmiral.util;
 
import java.util.Map;
 
public interface ConfigInit
{
/**
* This method is called by initialization from config file.
*
* @param params map String -> String with pairs of param name -> value
* from the initializaion file
*/
public void init(Map params);
}
/hostadmiral/trunk/src/ak/hostadmiral/listener/file/ConfigServlet.java
File deleted
/hostadmiral/trunk/src/ak/hostadmiral/listener/file/FileListener.java
1,5 → 1,6
package ak.hostadmiral.core.listener.file;
package ak.hostadmiral.listener.file;
 
import java.util.Map;
import java.util.Collection;
import java.util.Iterator;
import java.io.Writer;
6,6 → 7,7
import java.io.BufferedWriter;
import java.io.FileWriter;
import ak.hostadmiral.util.ModelException;
import ak.hostadmiral.util.ConfigInit;
import ak.hostadmiral.core.model.*;
 
import org.apache.log4j.Logger;
12,6 → 14,7
 
public class FileListener
implements
ConfigInit,
UserCreatedListener,
UserModifiedListener,
UserDeletedListener,
36,6 → 39,31
public static final String PROTOCOL_NAME = "HostAdmiral_FileListener";
public static final String PROTOCOL_VERSION = "0.1";
 
public void init(Map params)
{
setFileName((String)params.get("fileName"));
 
UserManager.getInstance().addCreatedListener(this);
UserManager.getInstance().addModifiedListener(this);
UserManager.getInstance().addDeletedListener(this);
 
InetDomainManager.getInstance().addCreatedListener(this);
InetDomainManager.getInstance().addModifiedListener(this);
InetDomainManager.getInstance().addDeletedListener(this);
 
SystemUserManager.getInstance().addCreatedListener(this);
SystemUserManager.getInstance().addModifiedListener(this);
SystemUserManager.getInstance().addDeletedListener(this);
 
MailboxManager.getInstance().addCreatedListener(this);
MailboxManager.getInstance().addModifiedListener(this);
MailboxManager.getInstance().addDeletedListener(this);
 
MailAliasManager.getInstance().addCreatedListener(this);
MailAliasManager.getInstance().addModifiedListener(this);
MailAliasManager.getInstance().addDeletedListener(this);
}
 
public static String getFileName()
{
return fileName;
/hostadmiral/trunk/src/ak/hostadmiral/listener/dummy/DummyListener.java
1,10 → 1,13
package ak.hostadmiral.core.listener.dummy;
package ak.hostadmiral.listener.dummy;
 
import java.util.Map;
import ak.hostadmiral.util.ModelException;
import ak.hostadmiral.util.ConfigInit;
import ak.hostadmiral.core.model.*;
 
public class DummyListener
implements
ConfigInit,
UserCreatedListener,
UserModifiedListener,
UserDeletedListener,
21,6 → 24,29
MailAliasModifiedListener,
MailAliasDeletedListener
{
public void init(Map params)
{
UserManager.getInstance().addCreatedListener(this);
UserManager.getInstance().addModifiedListener(this);
UserManager.getInstance().addDeletedListener(this);
 
InetDomainManager.getInstance().addCreatedListener(this);
InetDomainManager.getInstance().addModifiedListener(this);
InetDomainManager.getInstance().addDeletedListener(this);
 
SystemUserManager.getInstance().addCreatedListener(this);
SystemUserManager.getInstance().addModifiedListener(this);
SystemUserManager.getInstance().addDeletedListener(this);
 
MailboxManager.getInstance().addCreatedListener(this);
MailboxManager.getInstance().addModifiedListener(this);
MailboxManager.getInstance().addDeletedListener(this);
 
MailAliasManager.getInstance().addCreatedListener(this);
MailAliasManager.getInstance().addModifiedListener(this);
MailAliasManager.getInstance().addDeletedListener(this);
}
 
//=== user ====================================================================================
 
public void userCreated(User editor, User user)
/hostadmiral/trunk/webapp/WEB-INF/web.xml
17,17 → 17,6
<filter>
<filter-name>Hibernate Filter</filter-name>
<filter-class>ak.hostadmiral.core.servlet.HibernateFilter</filter-class>
<init-param>
<param-name>register</param-name>
<param-value>
ak.hostadmiral.core.model.UserManager;
ak.hostadmiral.core.model.MailboxManager;
ak.hostadmiral.core.model.MailAliasManager;
ak.hostadmiral.core.model.MailAliasDestinationManager;
ak.hostadmiral.core.model.SystemUserManager;
ak.hostadmiral.core.model.InetDomainManager
</param-value>
</init-param>
</filter>
<filter>
<filter-name>Login Filter</filter-name>
59,6 → 48,12
<url-pattern>/*</url-pattern>
</filter-mapping>
 
<servlet>
<servlet-name>CoreConfigServlet</servlet-name>
<servlet-class>ak.hostadmiral.core.servlet.ConfigServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
 
<!-- Standard Action Servlet Configuration (with debugging) -->
<servlet>
<servlet-name>action</servlet-name>
78,111 → 73,6
<load-on-startup>2</load-on-startup>
</servlet>
 
<servlet>
<servlet-name>ListenerRegistratorServlet</servlet-name>
<servlet-class>ak.hostadmiral.core.servlet.ListenerRegistratorServlet</servlet-class>
<init-param>
<param-name>UserCreatedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>UserModifiedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>UserDeletedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>InetDomainCreatedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>InetDomainModifiedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>InetDomainDeletedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>SystemUserCreatedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>SystemUserModifiedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>SystemUserDeletedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>MailboxCreatedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>MailboxModifiedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>MailboxDeletedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>MailAliasCreatedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>MailAliasModifiedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<init-param>
<param-name>MailAliasDeletedListener</param-name>
<param-value>
ak.hostadmiral.core.listener.dummy.DummyListener;
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ConfigServlet</servlet-name>
<servlet-class>ak.hostadmiral.core.listener.file.ConfigServlet</servlet-class>
<init-param>
<param-name>fileName</param-name>
<param-value>/tmp/hostadmiral</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
 
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
/hostadmiral/trunk/webapp/WEB-INF/hostadmiral-core.tld
39,7 → 39,7
 
<tag>
<name>viewable</name>
<tagclass>ak.hostadmiral.core.taglib.ViewableTag</tagclass>
<tagclass>ak.hostadmiral.core.taglib.permission.ViewableTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
49,7 → 49,7
</tag>
<tag>
<name>notViewable</name>
<tagclass>ak.hostadmiral.core.taglib.NotViewableTag</tagclass>
<tagclass>ak.hostadmiral.core.taglib.permission.NotViewableTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
59,7 → 59,7
</tag>
<tag>
<name>editable</name>
<tagclass>ak.hostadmiral.core.taglib.EditableTag</tagclass>
<tagclass>ak.hostadmiral.core.taglib.permission.EditableTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
69,7 → 69,7
</tag>
<tag>
<name>notEditable</name>
<tagclass>ak.hostadmiral.core.taglib.NotEditableTag</tagclass>
<tagclass>ak.hostadmiral.core.taglib.permission.NotEditableTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
79,7 → 79,7
</tag>
<tag>
<name>deleteable</name>
<tagclass>ak.hostadmiral.core.taglib.DeleteableTag</tagclass>
<tagclass>ak.hostadmiral.core.taglib.permission.DeleteableTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
89,7 → 89,7
</tag>
<tag>
<name>notDeleteable</name>
<tagclass>ak.hostadmiral.core.taglib.NotDeleteableTag</tagclass>
<tagclass>ak.hostadmiral.core.taglib.permission.NotDeleteableTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
99,7 → 99,7
</tag>
<tag>
<name>rights</name>
<tagclass>ak.hostadmiral.core.taglib.RightsTag</tagclass>
<tagclass>ak.hostadmiral.core.taglib.permission.RightsTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
114,7 → 114,7
</tag>
<tag>
<name>noRights</name>
<tagclass>ak.hostadmiral.core.taglib.NoRightsTag</tagclass>
<tagclass>ak.hostadmiral.core.taglib.permission.NoRightsTag</tagclass>
<bodycontent>JSP</bodycontent>
<attribute>
<name>name</name>
148,7 → 148,7
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>formatKey</name>
<name>formatKey</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
/hostadmiral/trunk/webapp/WEB-INF/conf/hostadmiral_config.xml
0,0 → 1,24
<?xml version='1.0' encoding='utf-8'?>
 
<!-- HostAdmiral configuration file - user definitions. -->
<hostadmiral>
<version major="1" minor="0" />
<datasource>
<settings>
<username>postgres</username>
<password>password</password>
</settings>
</datasource>
<initializations>
<initialization>
<class>ak.hostadmiral.listener.dummy.DummyListener</class>
</initialization>
<initialization>
<class>ak.hostadmiral.listener.file.FileListener</class>
<init-param>
<param-name>fileName</param-name>
<param-value>/tmp/hostadmiral</param-value>
</init-param>
</initialization>
</initializations>
</hostadmiral>
/hostadmiral/trunk/webapp/WEB-INF/conf/hostadmiral_config.xml.sample
0,0 → 1,28
<?xml version='1.0' encoding='utf-8'?>
 
<!-- HostAdmiral configuration file - user definitions. -->
<hostadmiral>
<version major="1" minor="0" />
<datasource>
<settings>
<username>postgres</username>
<password>password</password>
</settings>
</datasource>
<initializations>
<!--
<initialization>
<class>ak.hostadmiral.listener.dummy.DummyListener</class>
</initialization>
-->
<!--
<initialization>
<class>ak.hostadmiral.listener.file.FileListener</class>
<init-param>
<param-name>fileName</param-name>
<param-value>/tmp/hostadmiral</param-value>
</init-param>
</initialization>
-->
</initializations>
</hostadmiral>
/hostadmiral/trunk/webapp/WEB-INF/conf/hostadmiral_config.xml.default
0,0 → 1,68
<?xml version='1.0' encoding='utf-8'?>
 
<!--
HostAdmiral configuration file.
There are two files - one is default, the second one is user-defined.
Both files are merged with user-definition preference.
-->
<hostadmiral>
<!--
Version of this config. By changing major number the config must be converted to new
one. Minor changes allow old file using.
-->
<version major="1" minor="0" />
 
<!--
Which data source is used to store internal information.
-->
<datasource>
<!-- Data source type. Only "hibernate" is supported at the moment -->
<type>hibernate</type>
 
<!-- Hibernate and database properties -->
<settings>
<!-- DB driver -->
<driver>org.postgresql.Driver</driver>
 
<!-- DB user -->
<username></username>
 
<!-- DB password -->
<password></password>
 
<!-- DB URL: type, host and database name, format depends on DB driver -->
<url>jdbc:postgresql://localhost/hostadmiral</url>
 
<!-- DB dialect, must conform to DB driver -->
<dialect>net.sf.hibernate.dialect.PostgreSQLDialect</dialect>
</settings>
</datasource>
 
<!--
Classes which must be initialized at program startup.
If class implements ak.hostadmiral.util.ConfigInit then the method init will be called,
only such classes can have init params. Otherwise the class is just called by "forName"
and can use static initializers.
-->
<initializations>
<!-- Core classes -->
<initialization>
<class>ak.hostadmiral.core.model.UserManager</class>
</initialization>
<initialization>
<class>ak.hostadmiral.core.model.SystemUserManager</class>
</initialization>
<initialization>
<class>ak.hostadmiral.core.model.InetDomainManager</class>
</initialization>
<initialization>
<class>ak.hostadmiral.core.model.MailboxManager</class>
</initialization>
<initialization>
<class>ak.hostadmiral.core.model.MailAliasManager</class>
</initialization>
<initialization>
<class>ak.hostadmiral.core.model.MailAliasDestinationManager</class>
</initialization>
</initializations>
</hostadmiral>