001 package railo.runtime.listener; 002 003 import railo.commons.lang.StringUtil; 004 import railo.runtime.db.DataSource; 005 import railo.runtime.exp.ApplicationException; 006 import railo.runtime.type.util.ArrayUtil; 007 008 public abstract class ApplicationContextSupport implements ApplicationContextPro { 009 010 private static final long serialVersionUID = 1384678713928757744L; 011 012 protected int idletimeout=1800; 013 protected String cookiedomain; 014 protected String applicationtoken; 015 016 @Override 017 public void setSecuritySettings(String applicationtoken, String cookiedomain, int idletimeout) { 018 this.applicationtoken=applicationtoken; 019 this.cookiedomain=cookiedomain; 020 this.idletimeout=idletimeout; 021 022 } 023 024 @Override 025 public String getSecurityApplicationToken() { 026 if(StringUtil.isEmpty(applicationtoken,true)) return getName(); 027 return applicationtoken; 028 } 029 030 @Override 031 public String getSecurityCookieDomain() { 032 if(StringUtil.isEmpty(applicationtoken,true)) return null; 033 return cookiedomain; 034 } 035 036 @Override 037 public int getSecurityIdleTimeout() { 038 if(idletimeout<1) return 1800; 039 return idletimeout; 040 } 041 042 043 044 @Override 045 public DataSource getDataSource(String dataSourceName, DataSource defaultValue) { 046 dataSourceName=dataSourceName.trim(); 047 DataSource[] sources = getDataSources(); 048 if(!ArrayUtil.isEmpty(sources)) { 049 for(int i=0;i<sources.length;i++){ 050 if(sources[i].getName().equalsIgnoreCase(dataSourceName)) 051 return sources[i]; 052 } 053 } 054 return defaultValue; 055 } 056 057 @Override 058 public DataSource getDataSource(String dataSourceName) throws ApplicationException { 059 DataSource source = getDataSource(dataSourceName,null); 060 if(source==null) 061 throw new ApplicationException("there is no datasource with name ["+dataSourceName+"]"); 062 return source; 063 } 064 065 }