/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> |