curcuru     2002/07/12 16:29:30

  Modified:    test/java/src/org/apache/qetest QetestFactory.java
  Log:
  Add newLogger and newReporter calls; these objects should be
  created from this factory, which will configure them from Properties
  
  Revision  Changes    Path
  1.3       +96 -1     
xml-xalan/test/java/src/org/apache/qetest/QetestFactory.java
  
  Index: QetestFactory.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/test/java/src/org/apache/qetest/QetestFactory.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- QetestFactory.java        2 Apr 2002 17:40:29 -0000       1.2
  +++ QetestFactory.java        12 Jul 2002 23:29:30 -0000      1.3
  @@ -57,6 +57,8 @@
   
   package org.apache.qetest;
   
  +import java.util.Properties;
  +
   /**
    * Factory constructor for various qetest-related objects.  
    *
  @@ -135,6 +137,99 @@
               return service;
           }
       }
  +
  +
  +    /**
  +     * Get a new Reporter with some defaults.
  +     * 
  +     * Will attempt to initialize the appropriate Reporter
  +     * depending on the options passed in; if all else fails, will 
  +     * return at least a ConsoleLogger.  
  +     *
  +     * @param options to create Reporter from
  +     * @return appropriate Reporter instance, or a default one.
  +     */
  +    public static Reporter newReporter(Properties options)
  +    {
  +        Reporter reporter = null;
  +        if (null == options)
  +        {
  +            // Return a default Reporter
  +            reporter = new Reporter(null);
  +            reporter.addDefaultLogger();  // add default logger automatically
  +            return reporter;
  +        }
  +
  +        // Setup appropriate defaults for the Reporter
  +        // Ensure we have an XMLFileLogger if we have a logName
  +        String logF = options.getProperty(Logger.OPT_LOGFILE);
  +
  +        if ((logF != null) && (!logF.equals("")))
  +        {
  +
  +            // We should ensure there's an XMLFileReporter
  +            String r = options.getProperty(Reporter.OPT_LOGGERS);
  +
  +            if (r == null)
  +            {
  +                // Create the property if needed...
  +                options.put(Reporter.OPT_LOGGERS,
  +                              "org.apache.qetest.XMLFileLogger");
  +            }
  +            else if (r.indexOf("XMLFileLogger") <= 0)
  +            {
  +                // ...otherwise append to existing list
  +                options.put(Reporter.OPT_LOGGERS,
  +                              r + Reporter.LOGGER_SEPARATOR
  +                              + "org.apache.qetest.XMLFileLogger");
  +            }
  +        }
  +
  +        // Ensure we have a ConsoleLogger unless asked not to
  +        // @todo improve and document this feature
  +        String noDefault = options.getProperty("noDefaultReporter");
  +
  +        if (noDefault == null)
  +        {
  +
  +            // We should ensure there's an XMLFileReporter
  +            String r = options.getProperty(Reporter.OPT_LOGGERS);
  +
  +            if (r == null)
  +            {
  +                options.put(Reporter.OPT_LOGGERS,
  +                              "org.apache.qetest.ConsoleLogger");
  +            }
  +            else if (r.indexOf("ConsoleLogger") <= 0)
  +            {
  +                options.put(Reporter.OPT_LOGGERS,
  +                              r + Reporter.LOGGER_SEPARATOR
  +                              + "org.apache.qetest.ConsoleLogger");
  +            }
  +        }
  +
  +        // Pass our options directly to the reporter
  +        //  so it can use the same values in initialization
  +        // A Reporter will auto-initialize from the values
  +        //  in the properties block
  +        reporter = new Reporter(options);
  +        return reporter;
  +    }
  +
  +
  +    /**
  +     * Get a new Logger with some defaults.
  +     * 
  +     * Currently a redirect to call (Logger)newReporter(options).  
  +     *
  +     * @param options to create Logger from
  +     * @return appropriate Logger instance, or a default one.
  +     */
  +    public static Logger newLogger(Properties options)
  +    {
  +        return (Logger)newReporter(options);
  +    }
  +
   
       /** Prevent instantiation - private constructor.  */
       private QetestFactory() { /* no-op */ }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to