package org.jblooming.waf.settings;
import org.jblooming.operator.Operator;
import java.util.*;
/**
* Holds a list of applications, and with the setup method lauches their config in the correct order.
*
* @author Pietro Polsinelli ppolsinelli@open-lab.com
*/
public class PlatformConfiguration {
/**
* used for checking launch of admin features with no operator logged
*/
public static String psw = "dom";
public static String globalSettingsFileName = "global.properties";
public static String logSettingsFileName = "logSetting.properties";
public static Class defaultOperatorSubclass = Operator.class;
public Map<String, Application> applications = new TreeMap();
public static boolean schedulerRunsByDefault = false;
public static boolean logOnConsole;
public static boolean logOnFile;
public static String logFilesRoot ;
public static String logPattern;
// Log file names constants
public static String platformLogFileName = "platform.log";
public static String hibernateLogFileName = "hibernate.log";
public static String jobLoggerLogFileName = "jobLogger.log";
public static String i18nLogFileName = "i18n.log";
public static String emailLogFileName = "email.log";
//public static boolean oracle10gRelease2caseInsensitiveSupport = false;
/**
* @see "http://www.hibernate.org/293.html"
* Sample config for case-sensitive dbs (Oracle):
* stringPrimitiveFieldsConversion = PlatformConfiguration.StringConversionType.UPPER;
* searchStringParametersConversion = PlatformConfiguration.StringConversionType.UPPER
* <p/>
* Sample config for case-insensitive dbs (SqlServer, MySQL):
* leave them all to none
*/
public static enum StringConversionType {UPPER,LOWER,NONE}
/**
* distinguish between development and production environment
* example: allows to use a different login only in deployment
*/
public boolean development = false;
public String defaultIndex = "/index.jsp";
public Application defaultApplication;
public boolean catchPersistenceErrors = false;
public boolean loadedWithPageContextSettings = false;
public void addApplication(Application application) {
applications.put(application.getName(), application);
}
public Application getDefaultApplication() {
return defaultApplication;
}
public Application getApplication(String appName) {
//in case of Platform, fall to default
Application app = null;
if (appName != null && !"Platform".equalsIgnoreCase(appName))
app = applications.get(appName);
if (app != null)
return app;
else
return getDefaultApplication();
}
}