package org.safehaus.penrose.naming;
import org.safehaus.penrose.PenroseConfig;
import org.safehaus.penrose.validation.Validator;
import org.safehaus.penrose.log.LogManager;
import org.safehaus.penrose.filter.FilterEvaluator;
import org.safehaus.penrose.partition.PartitionManager;
import org.safehaus.penrose.schema.SchemaManager;
import org.safehaus.penrose.session.SessionContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
/**
* @author Endi S. Dewata
*/
public class PenroseContext {
public Logger log = LoggerFactory.getLogger(getClass());
public final static String THREAD_MANAGER = "java:comp/org/safehaus/penrose/thread/ThreadManager";
public final static String SCHEMA_MANAGER = "java:comp/org/safehaus/penrose/schema/SchemaManager";
public final static String SESSION_MANAGER = "java:comp/org/safehaus/penrose/session/SessionManager";
public final static String HANDLER_MANAGER = "java:comp/org/safehaus/penrose/handler/HandlerManager";
public final static String EVENT_MANAGER = "java:comp/org/safehaus/penrose/event/EventManager";
public final static String INTERPRETER_MANAGER = "java:comp/org/safehaus/penrose/interpreter/InterpreterManager";
public final static String CONNECTOR_MANAGER = "java:comp/org/safehaus/penrose/connector/ConnectorManager";
public final static String PARTITION_MANAGER = "java:comp/org/safehaus/penrose/partition/PartitionManager";
protected File home;
protected PenroseConfig penroseConfig;
protected SchemaManager schemaManager;
protected FilterEvaluator filterEvaluator;
protected PartitionManager partitionManager;
protected LogManager logManager;
protected SessionContext sessionContext;
public PenroseContext(File home) {
this.home = home;
}
public SchemaManager getSchemaManager() {
return schemaManager;
}
public void setSchemaManager(SchemaManager schemaManager) {
this.schemaManager = schemaManager;
}
public PartitionManager getPartitionManager() {
return partitionManager;
}
public void setPartitions(PartitionManager partitionManager) {
this.partitionManager = partitionManager;
}
public SessionContext getSessionContext() {
return sessionContext;
}
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
public void init(PenroseConfig penroseConfig) throws Exception {
this.penroseConfig = penroseConfig;
for (String name : penroseConfig.getSystemPropertyNames()) {
String value = penroseConfig.getSystemProperty(name);
System.setProperty(name, value);
}
partitionManager = new PartitionManager(
home,
penroseConfig,
this
);
schemaManager = new SchemaManager(home);
schemaManager.setPenroseConfig(penroseConfig);
schemaManager.setPenroseContext(this);
schemaManager.loadSchemas();
filterEvaluator = new FilterEvaluator();
filterEvaluator.setSchema(schemaManager.getSchema());
Validator partitionValidator = new Validator();
partitionValidator.setPenroseConfig(penroseConfig);
partitionValidator.setPenroseContext(this);
logManager = new LogManager(home);
logManager.load();
}
public void start() throws Exception {
}
public void stop() throws Exception {
}
public void clear() throws Exception {
schemaManager.clear();
}
public PenroseConfig getPenroseConfig() {
return penroseConfig;
}
public void setPenroseConfig(PenroseConfig penroseConfig) {
this.penroseConfig = penroseConfig;
}
public FilterEvaluator getFilterEvaluator() {
return filterEvaluator;
}
public void setFilterEvaluator(FilterEvaluator filterEvaluator) {
this.filterEvaluator = filterEvaluator;
}
public File getHome() {
return home;
}
public void setHome(File home) {
this.home = home;
}
public LogManager getLogManager() {
return logManager;
}
public void setLogManager(LogManager logManager) {
this.logManager = logManager;
}
}