package railo.runtime.listener; import railo.commons.lang.StringUtil; import railo.runtime.db.DataSource; import railo.runtime.exp.ApplicationException; import railo.runtime.type.util.ArrayUtil; public abstract class ApplicationContextSupport implements ApplicationContextPro { private static final long serialVersionUID = 1384678713928757744L; protected int idletimeout=1800; protected String cookiedomain; protected String applicationtoken; @Override public void setSecuritySettings(String applicationtoken, String cookiedomain, int idletimeout) { this.applicationtoken=applicationtoken; this.cookiedomain=cookiedomain; this.idletimeout=idletimeout; } @Override public String getSecurityApplicationToken() { if(StringUtil.isEmpty(applicationtoken,true)) return getName(); return applicationtoken; } @Override public String getSecurityCookieDomain() { if(StringUtil.isEmpty(applicationtoken,true)) return null; return cookiedomain; } @Override public int getSecurityIdleTimeout() { if(idletimeout<1) return 1800; return idletimeout; } @Override public DataSource getDataSource(String dataSourceName, DataSource defaultValue) { dataSourceName=dataSourceName.trim(); DataSource[] sources = getDataSources(); if(!ArrayUtil.isEmpty(sources)) { for(int i=0;i<sources.length;i++){ if(sources[i].getName().equalsIgnoreCase(dataSourceName)) return sources[i]; } } return defaultValue; } @Override public DataSource getDataSource(String dataSourceName) throws ApplicationException { DataSource source = getDataSource(dataSourceName,null); if(source==null) throw new ApplicationException("there is no datasource with name ["+dataSourceName+"]"); return source; } }