ovidiu      02/03/17 13:53:37

  Modified:    src/scratchpad/schecoon/src/org/apache/cocoon/components/flow
                        InterpreterSelector.java
  Log:
  Maintain the logger separate from the Cocoon sitemap one. Initialize
  the created interpreters with the values obtained from the
  Configuration object.
  
  Revision  Changes    Path
  1.4       +29 -1     
xml-cocoon2/src/scratchpad/schecoon/src/org/apache/cocoon/components/flow/InterpreterSelector.java
  
  Index: InterpreterSelector.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/schecoon/src/org/apache/cocoon/components/flow/InterpreterSelector.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- InterpreterSelector.java  15 Mar 2002 23:35:47 -0000      1.3
  +++ InterpreterSelector.java  17 Mar 2002 21:53:37 -0000      1.4
  @@ -1,28 +1,45 @@
   package org.apache.cocoon.components.flow;
   
   import org.apache.avalon.excalibur.component.ExcaliburComponentSelector;
  +import org.apache.avalon.excalibur.logger.LogKitManageable;
  +import org.apache.avalon.excalibur.logger.LogKitManager;
   import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.component.Composable;
   import org.apache.avalon.framework.configuration.Configurable;
   import org.apache.avalon.framework.configuration.Configuration;
   import org.apache.avalon.framework.configuration.ConfigurationException;
  +import org.apache.avalon.framework.logger.Loggable;
   import org.apache.avalon.framework.parameters.ParameterException;
   import org.apache.avalon.framework.parameters.Parameterizable;
   import org.apache.avalon.framework.parameters.Parameters;
   import org.apache.avalon.framework.thread.ThreadSafe;
  +import org.apache.log.Logger;
   
   public class InterpreterSelector extends ExcaliburComponentSelector
  -  implements Configurable, ThreadSafe, Composable
  +  implements Configurable, ThreadSafe, Composable, LogKitManageable
   {
  +  LogKitManager logkit;
     ComponentManager manager;
     String defaultLanguage;
     
     ClassLoader loader = Thread.currentThread().getContextClassLoader();
   
  +  public void setLogKitManager(LogKitManager logkit)
  +  {
  +    this.logkit = logkit;
  +  }
  +
     public void configure(Configuration config)
       throws ConfigurationException
     {
       defaultLanguage = config.getAttribute("default", null);
  +    boolean reloadScripts = config.getAttributeAsBoolean("reload-scripts", false);
  +    long checkTime = config.getAttributeAsLong("check-time", 1000L);
  +    String loggerName = config.getAttribute("logger", null);
  +    Logger loggerUsed = getLogger();
  +    if (loggerName != null) {
  +      loggerUsed = logkit.getLogger(loggerName);
  +    }
   
       Configuration[] components = config.getChildren("component-instance");
       if (components.length == 0)
  @@ -36,6 +53,17 @@
         try {
           clazz = loader.loadClass(className);
           addComponent(name, clazz, component);
  +
  +        // Setup various configuration options on the scripting
  +        // language Cocoon component
  +        Interpreter interp = (Interpreter)this.select(name);
  +        if (interp instanceof AbstractInterpreter) {
  +          ((AbstractInterpreter)interp).setReloadScripts(reloadScripts);
  +          ((AbstractInterpreter)interp).setCheckTime(checkTime);
  +        }
  +
  +        if (interp instanceof Loggable)
  +          ((Loggable)interp).setLogger(loggerUsed);
         }
         catch (Exception ex) {
           throw new ConfigurationException("Cannot load class " + className);
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to