| Method from org.apache.cocoon.components.language.generator.GeneratorSelector Detail: |
public void addGenerator(ComponentManager newManager,
Object hint,
Program generator) throws Exception {
try {
final ComponentHandler handler =
generator.getHandler(newManager, this.context, this.roles, this.logKitManager);
handler.enableLogging(getLogger());
handler.initialize();
this.componentHandlers.put(hint, handler);
if (getLogger().isDebugEnabled()) {
getLogger().debug("Adding " + generator.getName() + " for " + hint);
}
} catch(final Exception e) {
// Error will be logged by caller. This is for debug only
if (getLogger().isDebugEnabled()) {
getLogger().debug("Could not set up Component for hint: " + hint, e);
}
throw e;
}
}
|
public void compose(ComponentManager manager) throws ComponentException {
super.compose(manager);
this.manager = manager;
try {
this.classManager = (ClassLoaderManager) manager.lookup(ClassLoaderManager.ROLE);
} catch (ComponentException cme) {
throw new ComponentException(ClassLoaderManager.ROLE, "GeneratorSelector", cme);
}
try {
this.classManager.addDirectory((File) this.m_context.get(Constants.CONTEXT_WORK_DIR));
} catch (Exception e) {
throw new ComponentException(ROLE, "Could not add repository to ClassLoaderManager", e);
}
}
|
public void contextualize(Context context) {
super.contextualize(context);
this.context = context;
}
|
public void dispose() {
this.manager.release(this.classManager);
synchronized(this) {
Iterator keys = this.componentHandlers.keySet().iterator();
List keyList = new ArrayList();
while(keys.hasNext()) {
Object key = keys.next();
ComponentHandler handler =
(ComponentHandler)this.componentHandlers.get(key);
handler.dispose();
keyList.add(key);
}
keys = keyList.iterator();
while(keys.hasNext()) {
this.componentHandlers.remove(keys.next());
}
keyList.clear();
}
super.dispose();
}
|
public void release(Component component) {
ComponentHandler handler = (ComponentHandler)componentMapping.remove(component);
if (handler != null) {
try {
handler.put(component);
} catch (Exception e) {
getLogger().error("Error trying to release component", e);
}
}
}
|
public void removeGenerator(Object hint) {
ComponentHandler handler = (ComponentHandler) this.componentHandlers.remove(hint);
if (handler != null) {
handler.dispose();
this.classManager.reinstantiate();
if (getLogger().isDebugEnabled()) {
getLogger().debug("Removing " + handler.getClass().getName() + " for " + hint.toString());
}
}
}
|
public Component select(Object hint) throws ComponentException {
ComponentHandler handler = (ComponentHandler) this.componentHandlers.get(hint);
if (handler == null) {
throw new ComponentException(ROLE, "Could not find component for hint: " + hint);
}
try {
Component component = handler.get();
componentMapping.put(component, handler);
return component;
} catch (Exception ce) {
if (getLogger().isDebugEnabled())
getLogger().debug("Could not access component for hint: " + hint, ce);
throw new ComponentException(ROLE, "Could not access component for hint: " + hint, ce);
}
}
|
public void setLogKitManager(LogKitManager logkit) {
super.setLogKitManager(logkit);
if( null == this.logKitManager ) {
this.logKitManager = new LogkitLoggerManager( null, logkit );
}
}
Configure the LogKitManager |
public void setLoggerManager(LoggerManager logkit) {
super.setLoggerManager(logkit);
if( null == this.logKitManager ) {
this.logKitManager = new LogkitLoggerManager( logkit, null );
}
}
Configure the LoggerManager. |
public void setRoleManager(RoleManager roleMgr) {
super.setRoleManager(roleMgr);
this.roles = roleMgr;
}
|