You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ek...@apache.org on 2005/08/12 17:23:08 UTC

svn commit: r232310 [51/92] - in /beehive/trunk/controls/test: common/ infra/gtlf/ infra/gtlf/xsl/ infra/mantis/ infra/tch/ infra/tch/messages/ infra/tch/runtime/ infra/tch/schema/ perf/ perf/bin/ perf/cases/ perf/ctlsrc/org/apache/beehive/controls/per...

Modified: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/Filter.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/Filter.java?rev=232310&r1=232309&r2=232310&view=diff
==============================================================================
--- beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/Filter.java (original)
+++ beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/Filter.java Fri Aug 12 08:12:28 2005
@@ -1,726 +1,726 @@
-package org.apache.beehive.test.tools.tch.core;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.regexp.RE;
-import org.apache.tools.ant.BuildException;
-
-import org.apache.beehive.test.tools.tch.util.CaseInsensitiveStringKey;
-import org.apache.beehive.test.tools.tch.util.GeneralUtil;
-import org.apache.beehive.test.tools.tch.util.NoopCollection;
-
-/**
- * This class represent all information that can filter
- * the set of tests to be executed
- * Created upon startup, and then passed around to the right tasks
- */
-
-public class Filter
-{
-  private static final String SELECT_ALL = "all";
-  private static final String SELECT_NONE = "none";
-  private static final String SELECT_ANY = "any";
-
-  private static final String OS_NAME_SYS_PROP = "os.name";
-  private static final String JAVA_VERSION_SYS_PROP = "java.version";
-
-  public static final String DEFAULT_STATUS = "active";
-
-  //Filterable quantities, can be null if not filtered
-  private Integer filterTestLevel = null;
-  private Collection filterWebapps= null;
-  private Collection filterFrequencies = null;
-  private Collection filterServerModes = null;
-  private Collection filterOwnerList = null;
-  private Collection filterConversations = null;
-  private Collection filterDomains = null;
-  private Collection filterMiscInfos = null;
-  private Collection filterCRList = null;
-  private Collection filterDBs = null;
-  private boolean matchAllCRs = false; //"or" by default
-  private Boolean filterKnownFailures = null;
-  private Boolean filterSSLRestriction = null;
-  private String filterClientType = null;
-  private String filterSecurityType = null;
-  private String filterStatus = DEFAULT_STATUS;
-
-  private TestMetadataTask testMetadata = new TestMetadataTask();
-  //Don't call perform on these, just dummies
-  private TestMetadataTask testSuiteMetadata = new TestMetadataTask();
-
-  public Filter()
-  {
-    setOwner();
-    setDomains();
-    setDBs();
-    setMiscInfos();
-    setStatus();
-    setConversations();
-    setFrequencies();
-    setWebapps();
-    setServerModes();
-    setTestLevel();
-    setCRList();
-    setKnownFailures();
-    setSSLRestriction();
-    setClientType();
-    setSecurityType();
-  }
-
-  // FIXME: Change this class to take n metadatas!!!!
-
-  public void setTestMetadata(List list)
-  {
-    if (list.size() > 0)
-      if (list.size() == 1)
-        testMetadata = (TestMetadataTask)list.get(0);
-      else
-      {
-        testSuiteMetadata = (TestMetadataTask)list.get(list.size() - 1);
-        testMetadata = (TestMetadataTask)list.get(0);
-      }
-  }
-
-  public void setTestSuiteMetadata(TestMetadataTask inTestSuiteMetadata)
-  {}
-
-  /**
-   * This is the primary method of this class
-   * Given all the configured data, decides
-   * whether or not a test should be executed
-   */
-  public boolean pass()
-  {
-    org.apache.beehive.test.tools.tch.util.DebugLogger.log(
-      "passTestLevel:  " + passTestLevel());
-    org.apache.beehive.test.tools.tch.util.DebugLogger.log("passCRList:  " + passCRList());
-
-    // always pass if we're running a subset of tests, since we specifically
-    // specify the tests we want to run
-
-    // Time to rethink the above assumption. 
-    // Since test-names now supports regex,
-    // it would make sense to treat it in the same way as any other filter
-    // This should be ok for test replication, as all tch.filter.* props
-    // are "excluded" (from replication)
-    // Making this behavior configurable for now
-    if (AntProperties.isIndividualTestModeOn()
-      && !AntProperties.isFilterAdoptTestNamesEnabled())
-      return true;
-
-    try
-    {
-      if (passTestLevel()
-        && passCondition()
-        && passCRList()
-        && passFrequencies()
-        && passWebapps()
-        && passDomains()
-        && passStatus()
-        && passOwner()
-        && passDBs()
-        && passMiscInfos()
-        && passConversations()
-        && passKnownFailures()
-        && passServerModes()
-        && passSSLRestriction() // deprecated
-        && passOSRestriction()
-        && passOS()
-        && passJavaRestriction()
-        && passClientType()
-        && passSecurityType()
-        && (AntProperties.getTestInfo() == null
-          || AntProperties.getTestInfoAlsoRun()))
-        return true;
-      else
-        return false;
-    }
-    catch (AntProperties.AntPropertiesException ex)
-    {
-      throw new BuildException(ex.getMessage(), ex);
-    }
-
-  }
-
-  private boolean passStatus()
-  {
-    if (filterStatus != null)
-    {
-      if (testMetadata.getStatus() != null)
-        return filterStatus.equals(testMetadata.getStatus());
-      else if (testSuiteMetadata.getStatus() != null)
-        return filterStatus.equals(testSuiteMetadata.getStatus());
-      else
-        return false;
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passDBs()
-  {
-    if (filterDBs != null)
-    {
-      if (testMetadata.getDB() != null)
-        return checkDBs(testMetadata.getDB());
-      else if (testSuiteMetadata.getDB() != null)
-        return checkDBs(testSuiteMetadata.getDB());
-      else
-        return true;
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passOwner()
-  {
-    // we only allow one owner per test at this point
-    // if no owner is specified for a test, but 
-    // tch.filter.owners is set on the command line, 
-    // the test will not run
-
-    if (filterOwnerList != null)
-    {
-      if (testMetadata.getOwner() != null)
-        return filterOwnerList.contains(testMetadata.getOwner());
-      else if (testSuiteMetadata.getOwner() != null)
-        return filterOwnerList.contains(testSuiteMetadata.getOwner());
-      else
-        return false;
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passKnownFailures()
-  {
-    // if tch.filter.knownFailures == true, run all tests that are known failures
-    // if set to false, run all tests that are not known failures
-    // if not set at all, run all tests
-    if (filterKnownFailures != null)
-    {
-      if (testMetadata.getKnownFailure() != null)
-        return filterKnownFailures.equals(testMetadata.getKnownFailure());
-      else if (testSuiteMetadata.getKnownFailure() != null)
-        return filterKnownFailures.equals(testSuiteMetadata.getKnownFailure());
-      else
-        return !filterKnownFailures.booleanValue();
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passTestLevel()
-  {
-    //Strict override
-    if (filterTestLevel != null)
-    {
-      if (testMetadata.getTestLevels() != null)
-        return checkTestLevels(testMetadata.getTestLevels());
-      else if (testSuiteMetadata.getTestLevels() != null)
-        return checkTestLevels(testSuiteMetadata.getTestLevels());
-      else
-        return true;
-      //if no test level set, run tests.  FIXME:  Make a prop to return false here
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passFrequencies()
-  {
-    //Strict override
-    if (filterFrequencies != null)
-    {
-      if (testMetadata.getFrequencies() != null)
-        return checkFrequencies(testMetadata.getFrequencies());
-      else if (testSuiteMetadata.getFrequencies() != null)
-        return checkFrequencies(testSuiteMetadata.getFrequencies());
-      else
-        return true;
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passWebapps()
-  {
-    //Strict override
-    if (filterWebapps != null)
-    {
-      if (testMetadata.getWebapps() != null)
-        return checkWebapps(testMetadata.getWebapps());
-      else if (testSuiteMetadata.getWebapps() != null)
-        return checkWebapps(testSuiteMetadata.getWebapps());
-      else
-        return true;
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passDomains()
-  {
-    //Strict override
-    if (filterDomains != null)
-    {
-      if (testMetadata.getDomains() != null)
-        return checkDomains(testMetadata.getDomains());
-      else if (testSuiteMetadata.getDomains() != null)
-        return checkDomains(testSuiteMetadata.getDomains());
-      else
-        return true;
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passMiscInfos()
-  {
-    //Strict override
-    if (filterMiscInfos != null)
-    {
-      if (testMetadata.getMiscInfo() != null)
-        return checkMiscInfo(testMetadata.getMiscInfo());
-      else if (testSuiteMetadata.getMiscInfo() != null)
-        return checkMiscInfo(testSuiteMetadata.getMiscInfo());
-      else
-        return true;
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passConversations()
-  {
-    //Strict override
-    if (filterConversations != null)
-    {
-      if (testMetadata.getConversations() != null)
-        return checkConversations(testMetadata.getConversations());
-      else if (testSuiteMetadata.getConversations() != null)
-        return checkConversations(testSuiteMetadata.getConversations());
-      else
-        return false;
-      // if test has no conversation metadata, and filter is set, do not run the test
-    }
-    else
-      return true;
-  }
-
-  private boolean passServerModes()
-  {
-    //Strict override
-    if (filterServerModes != null)
-    {
-      if (testMetadata.getServerModes() != null)
-        return checkServerModes(testMetadata.getServerModes());
-      else if (testSuiteMetadata.getServerModes() != null)
-        return checkServerModes(testSuiteMetadata.getServerModes());
-      else
-        return true;
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passCondition()
-  {
-    boolean suiteCondPassed = true;
-    if (!testSuiteMetadata.getConditions().isEmpty())
-      suiteCondPassed = combineAndEvaluate(testSuiteMetadata.getConditions());
-    if (suiteCondPassed)
-    {
-      if (!testMetadata.getConditions().isEmpty())
-        return combineAndEvaluate(testMetadata.getConditions());
-    }
-    else
-      return false;
-    return true;
-  }
-
-  private boolean combineAndEvaluate(Collection conditions)
-  {
-    StringBuffer sb = new StringBuffer();
-    for (Iterator iter = conditions.iterator(); iter.hasNext();)
-    {
-      sb.append(iter.next());
-      if (iter.hasNext())
-        sb.append(" & ");
-    }
-    return GeneralUtil.evalBooleanString(sb.toString());
-  }
-
-  private boolean passClientType()
-  {
-    //Strict override
-    if (filterClientType != null)
-    {
-      if (!testMetadata.getClientTypes().isEmpty())
-      {
-        return checkClientType(testMetadata.getClientTypes());
-      }
-      else
-      {
-        if (!testSuiteMetadata.getClientTypes().isEmpty())
-        {
-          return checkClientType(testSuiteMetadata.getClientTypes());
-        }
-      }
-      return true; //If nothing in metadata, passes filter
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passSecurityType()
-  {
-    //Strict override
-    if (filterSecurityType != null)
-    {
-      if (!testMetadata.getSecurityTypes().isEmpty())
-      {
-        return checkSecurityType(testMetadata.getSecurityTypes());
-      }
-      else
-      {
-        if (!testSuiteMetadata.getSecurityTypes().isEmpty())
-        {
-          return checkSecurityType(testSuiteMetadata.getSecurityTypes());
-        }
-      }
-      return true; //If nothing in metadata, passes filter
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passSSLRestriction()
-  {
-    //Strict override
-    if (filterSSLRestriction != null)
-    {
-      if (testMetadata.getSSLRestriction() != null)
-      {
-        return filterSSLRestriction.equals(testMetadata.getSSLRestriction());
-      }
-      else
-      {
-        if (testSuiteMetadata.getSSLRestriction() != null)
-        {
-          return filterSSLRestriction.equals(
-            testSuiteMetadata.getSSLRestriction());
-        }
-      }
-      return true; //If nothing in metadata, passes filter
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean passOS()
-  {
-    //Strict override
-    if (testMetadata.getOses() != null)
-    {
-      return passOS(testMetadata.getOses());
-    }
-    else
-    {
-      if (testSuiteMetadata.getOses() != null)
-      {
-        return passOS(testSuiteMetadata.getOses());
-      }
-    }
-    return true; //If nothing in metadata, passes filter
-  }
-
-  // deprecated
-  private boolean passOSRestriction()
-  {
-    //Strict override
-    if (testMetadata.getOSRestriction() != null)
-    {
-      return testMetadata.getOSRestriction().pass(OS_NAME_SYS_PROP);
-    }
-    else
-    {
-      if (testSuiteMetadata.getOSRestriction() != null)
-      {
-        return testSuiteMetadata.getOSRestriction().pass(OS_NAME_SYS_PROP);
-      }
-    }
-    return true; //If nothing in metadata, passes filter
-  }
-
-  private boolean passOS(Collection inOses)
-  {
-    if (inOses.isEmpty())
-      return true;
-
-    return TestMetadataTask.matchesSystemProperty(
-      OS_NAME_SYS_PROP,
-      (String[])inOses.toArray(new String[] {}),
-      true);
-  }
-
-  private boolean passJavaRestriction()
-  {
-    //Strict override
-    if (testMetadata.getJavaRestriction() != null)
-    {
-      return testMetadata.getJavaRestriction().passVersion(
-        JAVA_VERSION_SYS_PROP);
-    }
-    else
-    {
-      if (testSuiteMetadata.getJavaRestriction() != null)
-      {
-        return testSuiteMetadata.getJavaRestriction().passVersion(
-          JAVA_VERSION_SYS_PROP);
-      }
-    }
-    return true; //If nothing in metadata, passes filter
-  }
-
-  private boolean passCRList()
-  {
-    //This one checks both levels
-    //if there is a match between the filter and the metadata at either
-    //level, we pass it
-    if (filterCRList != null)
-    {
-      Collection coll = null;
-      if (testMetadata.getCRList() != null)
-      {
-        if (coll == null)
-          coll = new HashSet();
-        coll.addAll(testMetadata.getCRList());
-      }
-      if (testSuiteMetadata.getCRList() != null)
-      {
-        if (coll == null)
-          coll = new HashSet();
-        coll.addAll(testSuiteMetadata.getCRList());
-      }
-      return checkCRList(coll);
-    }
-    else
-      return true; //no filter
-  }
-
-  private boolean checkCRList(Collection inCRList)
-  {
-    if (inCRList != null)
-    {
-      for (Iterator iter = filterCRList.iterator(); iter.hasNext();)
-      {
-        if (inCRList.contains(iter.next()))
-        {
-          if (!matchAllCRs)
-          {
-            return true; //just one match is enough to pass
-          }
-        }
-        else
-        {
-          if (matchAllCRs)
-          {
-            return false; //just one mismatch is enough to fail
-          }
-        }
-      }
-      //if "or", should've been returned already
-      //if "and", didn't get a miss, so we're ok
-      return matchAllCRs;
-    }
-    else
-      return false; // no matches because no metadata
-  }
-
-  private boolean checkConversations(Collection inConversations)
-  {
-    return isSubset(inConversations, filterConversations);
-  }
-
-  private boolean checkFrequencies(Collection inFrequencies)
-  {
-    return isSubset(inFrequencies, filterFrequencies);
-  }
-
-  private boolean checkWebapps(Collection inWebapps)
-  {
-    return isSubset(inWebapps, filterWebapps);
-  }
-
-  private boolean checkDBs(Collection inDBs)
-  {
-    // "any" cannot be mixed with other values, so just take first filter value
-    Boolean b = checkForAny(inDBs, (String)filterDBs.iterator().next());
-    if (b == null)
-      return isSubset(inDBs, filterDBs);
-    else
-      return b.booleanValue();
-  }
-
-  private Boolean checkForAny(Collection inMetadata, String inFilter)
-  {
-    // if filter is "any", metadata has at least one element, 
-    // and metadata does not have "none", then run
-    if (inFilter.equals(SELECT_ANY))
-      return new Boolean(
-        !inMetadata.isEmpty() && !inMetadata.contains(SELECT_NONE));
-    else
-      return null;
-  }
-
-  private boolean checkDomains(Collection inDomains)
-  {
-    return isSubset(inDomains, filterDomains);
-  }
-
-  private boolean checkMiscInfo(Collection inMiscInfos)
-  {
-    return isSubsetRegexp(inMiscInfos, filterMiscInfos);
-  }
-
-  private boolean checkServerModes(Collection inServerModes)
-  {
-    return isSubset(inServerModes, filterServerModes);
-  }
-
-  private boolean isSubset(Collection base, Collection c)
-  {
-    for (Iterator iter = c.iterator(); iter.hasNext();)
-    {
-      if (base.contains(iter.next()))
-        return true;
-    }
-    return false;
-  }
-
-  private boolean isSubsetRegexp(Collection base, Collection c)
-  {
-    Collection matches =
-      GeneralUtil.getRegexMatches(
-        c,
-        base,
-        new NoopCollection(),
-        new NoopCollection(),
-        RE.MATCH_CASEINDEPENDENT);
-    return !matches.isEmpty();
-  }
-
-  private boolean checkTestLevels(Collection inTestLevels)
-  {
-    return inTestLevels.contains(filterTestLevel);
-  }
-
-  private void setOwner()
-  {
-    filterOwnerList = AntProperties.getOwnerListFilter();
-  }
-
-  private void setDomains()
-  {
-    filterDomains = AntProperties.getDomainListFilter();
-  }
-
-  private void setDBs()
-  {
-    filterDBs = AntProperties.getDBListFilter();
-  }
-  
-  private void setMiscInfos()
-  {
-    filterMiscInfos = AntProperties.getMiscInfoFilter();
-  }
-
-
-  private void setStatus()
-  {
-    // so we keep default setting
-    if (AntProperties.getStatusFilter() != null)
-      filterStatus = AntProperties.getStatusFilter();
-  }
-
-  private void setServerModes()
-  {
-    filterServerModes = AntProperties.getServerModesListFilter();
-  }
-
-  private void setConversations()
-  {
-    filterConversations = AntProperties.getConversationsListFilter();
-  }
-
-  private void setFrequencies()
-  {
-    filterFrequencies = AntProperties.getFrequenciesListFilter();
-  }
-
-  private void setWebapps()
-  {
-    filterWebapps = AntProperties.getWebappsListFilter();
-  }
-
-  private void setTestLevel()
-  {
-    filterTestLevel = AntProperties.getTestLevelFilter();
-  }
-
-  private void setCRList()
-  {
-    filterCRList = AntProperties.getCRListFilter();
-    matchAllCRs = AntProperties.isCRListFilterMatchAll();
-  }
-
-  private void setKnownFailures()
-  {
-    filterKnownFailures = AntProperties.getKnownFailuresFilter();
-  }
-
-  private void setSSLRestriction()
-  {
-    filterSSLRestriction = AntProperties.getSSLFilter();
-  }
-
-  private void setClientType()
-  {
-    filterClientType = AntProperties.getClientTypeFilter();
-  }
-
-  private void setSecurityType()
-  {
-    filterSecurityType = AntProperties.getSecurityTypeFilter();
-  }
-
-  private boolean checkClientType(Map clientTypes)
-  {
-    // If it is not in map, test does not pass filter?
-    // For now that's better than NPE'ing if it is not there
-    if (!clientTypes
-      .keySet()
-      .contains(new CaseInsensitiveStringKey(filterClientType)))
-      return false;
-    return (
-      (Boolean)clientTypes.get(new CaseInsensitiveStringKey(filterClientType)))
-      .booleanValue();
-  }
-
-  private boolean checkSecurityType(Map securityTypes)
-  {
-    if (!securityTypes
-      .keySet()
-      .contains(new CaseInsensitiveStringKey(filterSecurityType)))
-      return false;
-    return (
-      (Boolean)securityTypes.get(
-        new CaseInsensitiveStringKey(filterSecurityType)))
-      .booleanValue();
-  }
-}
+package org.apache.beehive.test.tools.tch.core;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.regexp.RE;
+import org.apache.tools.ant.BuildException;
+
+import org.apache.beehive.test.tools.tch.util.CaseInsensitiveStringKey;
+import org.apache.beehive.test.tools.tch.util.GeneralUtil;
+import org.apache.beehive.test.tools.tch.util.NoopCollection;
+
+/**
+ * This class represent all information that can filter
+ * the set of tests to be executed
+ * Created upon startup, and then passed around to the right tasks
+ */
+
+public class Filter
+{
+  private static final String SELECT_ALL = "all";
+  private static final String SELECT_NONE = "none";
+  private static final String SELECT_ANY = "any";
+
+  private static final String OS_NAME_SYS_PROP = "os.name";
+  private static final String JAVA_VERSION_SYS_PROP = "java.version";
+
+  public static final String DEFAULT_STATUS = "active";
+
+  //Filterable quantities, can be null if not filtered
+  private Integer filterTestLevel = null;
+  private Collection filterWebapps= null;
+  private Collection filterFrequencies = null;
+  private Collection filterServerModes = null;
+  private Collection filterOwnerList = null;
+  private Collection filterConversations = null;
+  private Collection filterDomains = null;
+  private Collection filterMiscInfos = null;
+  private Collection filterCRList = null;
+  private Collection filterDBs = null;
+  private boolean matchAllCRs = false; //"or" by default
+  private Boolean filterKnownFailures = null;
+  private Boolean filterSSLRestriction = null;
+  private String filterClientType = null;
+  private String filterSecurityType = null;
+  private String filterStatus = DEFAULT_STATUS;
+
+  private TestMetadataTask testMetadata = new TestMetadataTask();
+  //Don't call perform on these, just dummies
+  private TestMetadataTask testSuiteMetadata = new TestMetadataTask();
+
+  public Filter()
+  {
+    setOwner();
+    setDomains();
+    setDBs();
+    setMiscInfos();
+    setStatus();
+    setConversations();
+    setFrequencies();
+    setWebapps();
+    setServerModes();
+    setTestLevel();
+    setCRList();
+    setKnownFailures();
+    setSSLRestriction();
+    setClientType();
+    setSecurityType();
+  }
+
+  // FIXME: Change this class to take n metadatas!!!!
+
+  public void setTestMetadata(List list)
+  {
+    if (list.size() > 0)
+      if (list.size() == 1)
+        testMetadata = (TestMetadataTask)list.get(0);
+      else
+      {
+        testSuiteMetadata = (TestMetadataTask)list.get(list.size() - 1);
+        testMetadata = (TestMetadataTask)list.get(0);
+      }
+  }
+
+  public void setTestSuiteMetadata(TestMetadataTask inTestSuiteMetadata)
+  {}
+
+  /**
+   * This is the primary method of this class
+   * Given all the configured data, decides
+   * whether or not a test should be executed
+   */
+  public boolean pass()
+  {
+    org.apache.beehive.test.tools.tch.util.DebugLogger.log(
+      "passTestLevel:  " + passTestLevel());
+    org.apache.beehive.test.tools.tch.util.DebugLogger.log("passCRList:  " + passCRList());
+
+    // always pass if we're running a subset of tests, since we specifically
+    // specify the tests we want to run
+
+    // Time to rethink the above assumption. 
+    // Since test-names now supports regex,
+    // it would make sense to treat it in the same way as any other filter
+    // This should be ok for test replication, as all tch.filter.* props
+    // are "excluded" (from replication)
+    // Making this behavior configurable for now
+    if (AntProperties.isIndividualTestModeOn()
+      && !AntProperties.isFilterAdoptTestNamesEnabled())
+      return true;
+
+    try
+    {
+      if (passTestLevel()
+        && passCondition()
+        && passCRList()
+        && passFrequencies()
+        && passWebapps()
+        && passDomains()
+        && passStatus()
+        && passOwner()
+        && passDBs()
+        && passMiscInfos()
+        && passConversations()
+        && passKnownFailures()
+        && passServerModes()
+        && passSSLRestriction() // deprecated
+        && passOSRestriction()
+        && passOS()
+        && passJavaRestriction()
+        && passClientType()
+        && passSecurityType()
+        && (AntProperties.getTestInfo() == null
+          || AntProperties.getTestInfoAlsoRun()))
+        return true;
+      else
+        return false;
+    }
+    catch (AntProperties.AntPropertiesException ex)
+    {
+      throw new BuildException(ex.getMessage(), ex);
+    }
+
+  }
+
+  private boolean passStatus()
+  {
+    if (filterStatus != null)
+    {
+      if (testMetadata.getStatus() != null)
+        return filterStatus.equals(testMetadata.getStatus());
+      else if (testSuiteMetadata.getStatus() != null)
+        return filterStatus.equals(testSuiteMetadata.getStatus());
+      else
+        return false;
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passDBs()
+  {
+    if (filterDBs != null)
+    {
+      if (testMetadata.getDB() != null)
+        return checkDBs(testMetadata.getDB());
+      else if (testSuiteMetadata.getDB() != null)
+        return checkDBs(testSuiteMetadata.getDB());
+      else
+        return true;
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passOwner()
+  {
+    // we only allow one owner per test at this point
+    // if no owner is specified for a test, but 
+    // tch.filter.owners is set on the command line, 
+    // the test will not run
+
+    if (filterOwnerList != null)
+    {
+      if (testMetadata.getOwner() != null)
+        return filterOwnerList.contains(testMetadata.getOwner());
+      else if (testSuiteMetadata.getOwner() != null)
+        return filterOwnerList.contains(testSuiteMetadata.getOwner());
+      else
+        return false;
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passKnownFailures()
+  {
+    // if tch.filter.knownFailures == true, run all tests that are known failures
+    // if set to false, run all tests that are not known failures
+    // if not set at all, run all tests
+    if (filterKnownFailures != null)
+    {
+      if (testMetadata.getKnownFailure() != null)
+        return filterKnownFailures.equals(testMetadata.getKnownFailure());
+      else if (testSuiteMetadata.getKnownFailure() != null)
+        return filterKnownFailures.equals(testSuiteMetadata.getKnownFailure());
+      else
+        return !filterKnownFailures.booleanValue();
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passTestLevel()
+  {
+    //Strict override
+    if (filterTestLevel != null)
+    {
+      if (testMetadata.getTestLevels() != null)
+        return checkTestLevels(testMetadata.getTestLevels());
+      else if (testSuiteMetadata.getTestLevels() != null)
+        return checkTestLevels(testSuiteMetadata.getTestLevels());
+      else
+        return true;
+      //if no test level set, run tests.  FIXME:  Make a prop to return false here
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passFrequencies()
+  {
+    //Strict override
+    if (filterFrequencies != null)
+    {
+      if (testMetadata.getFrequencies() != null)
+        return checkFrequencies(testMetadata.getFrequencies());
+      else if (testSuiteMetadata.getFrequencies() != null)
+        return checkFrequencies(testSuiteMetadata.getFrequencies());
+      else
+        return true;
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passWebapps()
+  {
+    //Strict override
+    if (filterWebapps != null)
+    {
+      if (testMetadata.getWebapps() != null)
+        return checkWebapps(testMetadata.getWebapps());
+      else if (testSuiteMetadata.getWebapps() != null)
+        return checkWebapps(testSuiteMetadata.getWebapps());
+      else
+        return true;
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passDomains()
+  {
+    //Strict override
+    if (filterDomains != null)
+    {
+      if (testMetadata.getDomains() != null)
+        return checkDomains(testMetadata.getDomains());
+      else if (testSuiteMetadata.getDomains() != null)
+        return checkDomains(testSuiteMetadata.getDomains());
+      else
+        return true;
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passMiscInfos()
+  {
+    //Strict override
+    if (filterMiscInfos != null)
+    {
+      if (testMetadata.getMiscInfo() != null)
+        return checkMiscInfo(testMetadata.getMiscInfo());
+      else if (testSuiteMetadata.getMiscInfo() != null)
+        return checkMiscInfo(testSuiteMetadata.getMiscInfo());
+      else
+        return true;
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passConversations()
+  {
+    //Strict override
+    if (filterConversations != null)
+    {
+      if (testMetadata.getConversations() != null)
+        return checkConversations(testMetadata.getConversations());
+      else if (testSuiteMetadata.getConversations() != null)
+        return checkConversations(testSuiteMetadata.getConversations());
+      else
+        return false;
+      // if test has no conversation metadata, and filter is set, do not run the test
+    }
+    else
+      return true;
+  }
+
+  private boolean passServerModes()
+  {
+    //Strict override
+    if (filterServerModes != null)
+    {
+      if (testMetadata.getServerModes() != null)
+        return checkServerModes(testMetadata.getServerModes());
+      else if (testSuiteMetadata.getServerModes() != null)
+        return checkServerModes(testSuiteMetadata.getServerModes());
+      else
+        return true;
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passCondition()
+  {
+    boolean suiteCondPassed = true;
+    if (!testSuiteMetadata.getConditions().isEmpty())
+      suiteCondPassed = combineAndEvaluate(testSuiteMetadata.getConditions());
+    if (suiteCondPassed)
+    {
+      if (!testMetadata.getConditions().isEmpty())
+        return combineAndEvaluate(testMetadata.getConditions());
+    }
+    else
+      return false;
+    return true;
+  }
+
+  private boolean combineAndEvaluate(Collection conditions)
+  {
+    StringBuffer sb = new StringBuffer();
+    for (Iterator iter = conditions.iterator(); iter.hasNext();)
+    {
+      sb.append(iter.next());
+      if (iter.hasNext())
+        sb.append(" & ");
+    }
+    return GeneralUtil.evalBooleanString(sb.toString());
+  }
+
+  private boolean passClientType()
+  {
+    //Strict override
+    if (filterClientType != null)
+    {
+      if (!testMetadata.getClientTypes().isEmpty())
+      {
+        return checkClientType(testMetadata.getClientTypes());
+      }
+      else
+      {
+        if (!testSuiteMetadata.getClientTypes().isEmpty())
+        {
+          return checkClientType(testSuiteMetadata.getClientTypes());
+        }
+      }
+      return true; //If nothing in metadata, passes filter
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passSecurityType()
+  {
+    //Strict override
+    if (filterSecurityType != null)
+    {
+      if (!testMetadata.getSecurityTypes().isEmpty())
+      {
+        return checkSecurityType(testMetadata.getSecurityTypes());
+      }
+      else
+      {
+        if (!testSuiteMetadata.getSecurityTypes().isEmpty())
+        {
+          return checkSecurityType(testSuiteMetadata.getSecurityTypes());
+        }
+      }
+      return true; //If nothing in metadata, passes filter
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passSSLRestriction()
+  {
+    //Strict override
+    if (filterSSLRestriction != null)
+    {
+      if (testMetadata.getSSLRestriction() != null)
+      {
+        return filterSSLRestriction.equals(testMetadata.getSSLRestriction());
+      }
+      else
+      {
+        if (testSuiteMetadata.getSSLRestriction() != null)
+        {
+          return filterSSLRestriction.equals(
+            testSuiteMetadata.getSSLRestriction());
+        }
+      }
+      return true; //If nothing in metadata, passes filter
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean passOS()
+  {
+    //Strict override
+    if (testMetadata.getOses() != null)
+    {
+      return passOS(testMetadata.getOses());
+    }
+    else
+    {
+      if (testSuiteMetadata.getOses() != null)
+      {
+        return passOS(testSuiteMetadata.getOses());
+      }
+    }
+    return true; //If nothing in metadata, passes filter
+  }
+
+  // deprecated
+  private boolean passOSRestriction()
+  {
+    //Strict override
+    if (testMetadata.getOSRestriction() != null)
+    {
+      return testMetadata.getOSRestriction().pass(OS_NAME_SYS_PROP);
+    }
+    else
+    {
+      if (testSuiteMetadata.getOSRestriction() != null)
+      {
+        return testSuiteMetadata.getOSRestriction().pass(OS_NAME_SYS_PROP);
+      }
+    }
+    return true; //If nothing in metadata, passes filter
+  }
+
+  private boolean passOS(Collection inOses)
+  {
+    if (inOses.isEmpty())
+      return true;
+
+    return TestMetadataTask.matchesSystemProperty(
+      OS_NAME_SYS_PROP,
+      (String[])inOses.toArray(new String[] {}),
+      true);
+  }
+
+  private boolean passJavaRestriction()
+  {
+    //Strict override
+    if (testMetadata.getJavaRestriction() != null)
+    {
+      return testMetadata.getJavaRestriction().passVersion(
+        JAVA_VERSION_SYS_PROP);
+    }
+    else
+    {
+      if (testSuiteMetadata.getJavaRestriction() != null)
+      {
+        return testSuiteMetadata.getJavaRestriction().passVersion(
+          JAVA_VERSION_SYS_PROP);
+      }
+    }
+    return true; //If nothing in metadata, passes filter
+  }
+
+  private boolean passCRList()
+  {
+    //This one checks both levels
+    //if there is a match between the filter and the metadata at either
+    //level, we pass it
+    if (filterCRList != null)
+    {
+      Collection coll = null;
+      if (testMetadata.getCRList() != null)
+      {
+        if (coll == null)
+          coll = new HashSet();
+        coll.addAll(testMetadata.getCRList());
+      }
+      if (testSuiteMetadata.getCRList() != null)
+      {
+        if (coll == null)
+          coll = new HashSet();
+        coll.addAll(testSuiteMetadata.getCRList());
+      }
+      return checkCRList(coll);
+    }
+    else
+      return true; //no filter
+  }
+
+  private boolean checkCRList(Collection inCRList)
+  {
+    if (inCRList != null)
+    {
+      for (Iterator iter = filterCRList.iterator(); iter.hasNext();)
+      {
+        if (inCRList.contains(iter.next()))
+        {
+          if (!matchAllCRs)
+          {
+            return true; //just one match is enough to pass
+          }
+        }
+        else
+        {
+          if (matchAllCRs)
+          {
+            return false; //just one mismatch is enough to fail
+          }
+        }
+      }
+      //if "or", should've been returned already
+      //if "and", didn't get a miss, so we're ok
+      return matchAllCRs;
+    }
+    else
+      return false; // no matches because no metadata
+  }
+
+  private boolean checkConversations(Collection inConversations)
+  {
+    return isSubset(inConversations, filterConversations);
+  }
+
+  private boolean checkFrequencies(Collection inFrequencies)
+  {
+    return isSubset(inFrequencies, filterFrequencies);
+  }
+
+  private boolean checkWebapps(Collection inWebapps)
+  {
+    return isSubset(inWebapps, filterWebapps);
+  }
+
+  private boolean checkDBs(Collection inDBs)
+  {
+    // "any" cannot be mixed with other values, so just take first filter value
+    Boolean b = checkForAny(inDBs, (String)filterDBs.iterator().next());
+    if (b == null)
+      return isSubset(inDBs, filterDBs);
+    else
+      return b.booleanValue();
+  }
+
+  private Boolean checkForAny(Collection inMetadata, String inFilter)
+  {
+    // if filter is "any", metadata has at least one element, 
+    // and metadata does not have "none", then run
+    if (inFilter.equals(SELECT_ANY))
+      return new Boolean(
+        !inMetadata.isEmpty() && !inMetadata.contains(SELECT_NONE));
+    else
+      return null;
+  }
+
+  private boolean checkDomains(Collection inDomains)
+  {
+    return isSubset(inDomains, filterDomains);
+  }
+
+  private boolean checkMiscInfo(Collection inMiscInfos)
+  {
+    return isSubsetRegexp(inMiscInfos, filterMiscInfos);
+  }
+
+  private boolean checkServerModes(Collection inServerModes)
+  {
+    return isSubset(inServerModes, filterServerModes);
+  }
+
+  private boolean isSubset(Collection base, Collection c)
+  {
+    for (Iterator iter = c.iterator(); iter.hasNext();)
+    {
+      if (base.contains(iter.next()))
+        return true;
+    }
+    return false;
+  }
+
+  private boolean isSubsetRegexp(Collection base, Collection c)
+  {
+    Collection matches =
+      GeneralUtil.getRegexMatches(
+        c,
+        base,
+        new NoopCollection(),
+        new NoopCollection(),
+        RE.MATCH_CASEINDEPENDENT);
+    return !matches.isEmpty();
+  }
+
+  private boolean checkTestLevels(Collection inTestLevels)
+  {
+    return inTestLevels.contains(filterTestLevel);
+  }
+
+  private void setOwner()
+  {
+    filterOwnerList = AntProperties.getOwnerListFilter();
+  }
+
+  private void setDomains()
+  {
+    filterDomains = AntProperties.getDomainListFilter();
+  }
+
+  private void setDBs()
+  {
+    filterDBs = AntProperties.getDBListFilter();
+  }
+  
+  private void setMiscInfos()
+  {
+    filterMiscInfos = AntProperties.getMiscInfoFilter();
+  }
+
+
+  private void setStatus()
+  {
+    // so we keep default setting
+    if (AntProperties.getStatusFilter() != null)
+      filterStatus = AntProperties.getStatusFilter();
+  }
+
+  private void setServerModes()
+  {
+    filterServerModes = AntProperties.getServerModesListFilter();
+  }
+
+  private void setConversations()
+  {
+    filterConversations = AntProperties.getConversationsListFilter();
+  }
+
+  private void setFrequencies()
+  {
+    filterFrequencies = AntProperties.getFrequenciesListFilter();
+  }
+
+  private void setWebapps()
+  {
+    filterWebapps = AntProperties.getWebappsListFilter();
+  }
+
+  private void setTestLevel()
+  {
+    filterTestLevel = AntProperties.getTestLevelFilter();
+  }
+
+  private void setCRList()
+  {
+    filterCRList = AntProperties.getCRListFilter();
+    matchAllCRs = AntProperties.isCRListFilterMatchAll();
+  }
+
+  private void setKnownFailures()
+  {
+    filterKnownFailures = AntProperties.getKnownFailuresFilter();
+  }
+
+  private void setSSLRestriction()
+  {
+    filterSSLRestriction = AntProperties.getSSLFilter();
+  }
+
+  private void setClientType()
+  {
+    filterClientType = AntProperties.getClientTypeFilter();
+  }
+
+  private void setSecurityType()
+  {
+    filterSecurityType = AntProperties.getSecurityTypeFilter();
+  }
+
+  private boolean checkClientType(Map clientTypes)
+  {
+    // If it is not in map, test does not pass filter?
+    // For now that's better than NPE'ing if it is not there
+    if (!clientTypes
+      .keySet()
+      .contains(new CaseInsensitiveStringKey(filterClientType)))
+      return false;
+    return (
+      (Boolean)clientTypes.get(new CaseInsensitiveStringKey(filterClientType)))
+      .booleanValue();
+  }
+
+  private boolean checkSecurityType(Map securityTypes)
+  {
+    if (!securityTypes
+      .keySet()
+      .contains(new CaseInsensitiveStringKey(filterSecurityType)))
+      return false;
+    return (
+      (Boolean)securityTypes.get(
+        new CaseInsensitiveStringKey(filterSecurityType)))
+      .booleanValue();
+  }
+}

Propchange: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/Filter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/HookTask.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/HookTask.java?rev=232310&r1=232309&r2=232310&view=diff
==============================================================================
--- beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/HookTask.java (original)
+++ beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/HookTask.java Fri Aug 12 08:12:28 2005
@@ -1,26 +1,26 @@
-package org.apache.beehive.test.tools.tch.core;
-
-public abstract class HookTask extends AnythingTask
-{
-
-  protected abstract String getDefaultName();
-
-  public boolean preRun()
-  {
-    if (super.preRun())
-    {
-      if (getTestNode() != null)
-      {
-        getTestNode().getHelper().setProcessEngine(getTestNode());
-        //This is for the test-names case, since we won't call TST.preRun()
-      }
-
-      if (getName() == null)
-        setName(getDefaultName());
-
-      return true;
-    }
-    else
-      return false;
-  }
-}
+package org.apache.beehive.test.tools.tch.core;
+
+public abstract class HookTask extends AnythingTask
+{
+
+  protected abstract String getDefaultName();
+
+  public boolean preRun()
+  {
+    if (super.preRun())
+    {
+      if (getTestNode() != null)
+      {
+        getTestNode().getHelper().setProcessEngine(getTestNode());
+        //This is for the test-names case, since we won't call TST.preRun()
+      }
+
+      if (getName() == null)
+        setName(getDefaultName());
+
+      return true;
+    }
+    else
+      return false;
+  }
+}

Propchange: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/HookTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IfTask.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IfTask.java?rev=232310&r1=232309&r2=232310&view=diff
==============================================================================
--- beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IfTask.java (original)
+++ beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IfTask.java Fri Aug 12 08:12:28 2005
@@ -1,92 +1,92 @@
-package org.apache.beehive.test.tools.tch.core;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.tools.ant.Task;
-
-import org.apache.beehive.test.tools.tch.util.GeneralUtil;
-
-public class IfTask extends AbstractMinimalTestNodeTask
-{
-
-  private Collection conditionTasks = null;
-
-  public String getName()
-  {
-    return "if-task";
-  }
-
-  public boolean isTestNode()
-  {
-    return true;
-  }
-
-  public Task handleTask(Task task)
-  {
-    task = super.handleTask(task);
-    if (task instanceof ConditionTask)
-    {
-      if (conditionTasks == null)
-      {
-        conditionTasks = new ArrayList();
-      }
-      conditionTasks.add(task);
-    }
-    return task;
-  }
-
-  public void getUsedPropsBelow(Collection props)
-  {
-    props.addAll(super.getUsedPropsAbove(props));
-    super.getUsedPropsBelow(props);
-  }
-
-  protected boolean beforeAlwaysDo()
-  {
-    if (!super.alwaysDo())
-      return false;
-
-    if (!GeneralUtil.evalBooleanString(getCondition()))
-    {
-      disconnectChildren();
-      return false;
-    }
-    return true;
-  }
-
-  private String getCondition()
-  {
-    StringBuffer sb = new StringBuffer();
-    boolean first = true;
-    for (Iterator iter = conditionTasks.iterator(); iter.hasNext();)
-    {
-      String newCond =
-        handleValue(
-          ((ConditionTask)iter.next()).getCondition());
-      if (first)
-        first = false;
-      else
-        sb.append(" & ");
-      sb.append(newCond);
-    }
-    //System.out.println("Condition: "+sb.toString());
-    return sb.toString();
-  }
-
-  public static class ConditionTask extends Task
-  {
-    private String condition;
-
-    public void addText(String inText)
-    {
-      condition = inText;
-    }
-
-    public String getCondition()
-    {
-      return condition;
-    }
-  }
-}
+package org.apache.beehive.test.tools.tch.core;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.tools.ant.Task;
+
+import org.apache.beehive.test.tools.tch.util.GeneralUtil;
+
+public class IfTask extends AbstractMinimalTestNodeTask
+{
+
+  private Collection conditionTasks = null;
+
+  public String getName()
+  {
+    return "if-task";
+  }
+
+  public boolean isTestNode()
+  {
+    return true;
+  }
+
+  public Task handleTask(Task task)
+  {
+    task = super.handleTask(task);
+    if (task instanceof ConditionTask)
+    {
+      if (conditionTasks == null)
+      {
+        conditionTasks = new ArrayList();
+      }
+      conditionTasks.add(task);
+    }
+    return task;
+  }
+
+  public void getUsedPropsBelow(Collection props)
+  {
+    props.addAll(super.getUsedPropsAbove(props));
+    super.getUsedPropsBelow(props);
+  }
+
+  protected boolean beforeAlwaysDo()
+  {
+    if (!super.alwaysDo())
+      return false;
+
+    if (!GeneralUtil.evalBooleanString(getCondition()))
+    {
+      disconnectChildren();
+      return false;
+    }
+    return true;
+  }
+
+  private String getCondition()
+  {
+    StringBuffer sb = new StringBuffer();
+    boolean first = true;
+    for (Iterator iter = conditionTasks.iterator(); iter.hasNext();)
+    {
+      String newCond =
+        handleValue(
+          ((ConditionTask)iter.next()).getCondition());
+      if (first)
+        first = false;
+      else
+        sb.append(" & ");
+      sb.append(newCond);
+    }
+    //System.out.println("Condition: "+sb.toString());
+    return sb.toString();
+  }
+
+  public static class ConditionTask extends Task
+  {
+    private String condition;
+
+    public void addText(String inText)
+    {
+      condition = inText;
+    }
+
+    public String getCondition()
+    {
+      return condition;
+    }
+  }
+}

Propchange: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IfTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IndependentTestGroupTask.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IndependentTestGroupTask.java?rev=232310&r1=232309&r2=232310&view=diff
==============================================================================
--- beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IndependentTestGroupTask.java (original)
+++ beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IndependentTestGroupTask.java Fri Aug 12 08:12:28 2005
@@ -1,126 +1,126 @@
-package org.apache.beehive.test.tools.tch.core;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-
-import org.apache.beehive.test.tools.tch.util.TchConstants;
-import org.apache.beehive.test.tools.tch.util.TestResultAdapter;
-
-/**
- */
-public class IndependentTestGroupTask
-  extends AbstractTestReplicationTask
-  implements EntryPoint
-{
-  private String name = "unnamed";
-  private boolean runFailedTestOnly = false;
-
-  public void setName(String inName)
-  {
-    name = inName;
-  }
-
-  public void setRerunFailedTestOnly(boolean b)
-  {
-    runFailedTestOnly = b;
-  }
-
-  public boolean runFailedTestOnly()
-  {
-    return runFailedTestOnly;
-  }
-
-  public String getName()
-  {
-    return name;
-  }
-
-  public boolean isTestNode()
-  {
-    return false;
-  }
-
-  protected boolean preRun()
-  {
-    if (super.preRun())
-    {
-      if (AntProperties.isIndividualTestModeOn())
-        logInform("Running independent test group " + getName());
-      return true;
-    }
-    return false;
-  }
-
-  public Collection getContainedLogicalTests()
-  {
-    Collection ret = new ArrayList();
-    getLogicalTestsRecursively(this, ret);
-    return ret;
-  }
-
-  private void getLogicalTestsRecursively(
-    AbstractMinimalTestNodeTask inTask,
-    Collection ret)
-  {
-    for (Iterator iter = inTask.getChildren().iterator(); iter.hasNext();)
-    {
-      AbstractMinimalTestNodeTask task =
-        (AbstractMinimalTestNodeTask)iter.next();
-      if (task instanceof LogicalTest)
-        ret.add(task);
-      else
-      {
-        getLogicalTestsRecursively(task, ret);
-      }
-    }
-  }
-
-  public Collection getContainedProcessNames()
-  {
-    Collection ret = new ArrayList();
-    getContainedProcessNamesRecursively(this, ret);
-    // Since getContainedProcessNames() is called in order to activate
-    // processes, we also need to get all processes mapped in the
-    // init-hook containing the independent-test-group.
-    TestSuiteTask task = getTestSuiteTask();
-    // If this is a test suite task, get all the processes which are
-    // mapped in for the init-hook
-    ret.addAll(task.getInitHookMappedProcesses());
-    return ret;
-  }
-
-  private void getContainedProcessNamesRecursively(
-    AbstractMinimalTestNodeTask inTask,
-    Collection ret)
-  {
-    for (Iterator iter = inTask.getChildren().iterator(); iter.hasNext();)
-    {
-      AbstractMinimalTestNodeTask task =
-        (AbstractMinimalTestNodeTask)iter.next();
-
-      if (task instanceof EntryPoint)
-      {
-        // an EntryPoint terminates the recursion
-        ret.addAll(((EntryPoint)task).getContainedProcessNames());
-      }
-      else if (task instanceof TestSuiteTask)
-      {
-        // If this is a test suite task, get all the processes which are
-        // mapped in for the init-hook
-        ret.addAll(((TestSuiteTask)task).getInitHookMappedProcesses());
-        // still need to recursively get process names for nested tasks
-        getContainedProcessNamesRecursively(task, ret);
-      }
-      else
-      {
-        getContainedProcessNamesRecursively(task, ret);
-      }
-    }
-  }
-
-  public String toString()
-  {
-    return getName();
-  }
-}
+package org.apache.beehive.test.tools.tch.core;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+
+import org.apache.beehive.test.tools.tch.util.TchConstants;
+import org.apache.beehive.test.tools.tch.util.TestResultAdapter;
+
+/**
+ */
+public class IndependentTestGroupTask
+  extends AbstractTestReplicationTask
+  implements EntryPoint
+{
+  private String name = "unnamed";
+  private boolean runFailedTestOnly = false;
+
+  public void setName(String inName)
+  {
+    name = inName;
+  }
+
+  public void setRerunFailedTestOnly(boolean b)
+  {
+    runFailedTestOnly = b;
+  }
+
+  public boolean runFailedTestOnly()
+  {
+    return runFailedTestOnly;
+  }
+
+  public String getName()
+  {
+    return name;
+  }
+
+  public boolean isTestNode()
+  {
+    return false;
+  }
+
+  protected boolean preRun()
+  {
+    if (super.preRun())
+    {
+      if (AntProperties.isIndividualTestModeOn())
+        logInform("Running independent test group " + getName());
+      return true;
+    }
+    return false;
+  }
+
+  public Collection getContainedLogicalTests()
+  {
+    Collection ret = new ArrayList();
+    getLogicalTestsRecursively(this, ret);
+    return ret;
+  }
+
+  private void getLogicalTestsRecursively(
+    AbstractMinimalTestNodeTask inTask,
+    Collection ret)
+  {
+    for (Iterator iter = inTask.getChildren().iterator(); iter.hasNext();)
+    {
+      AbstractMinimalTestNodeTask task =
+        (AbstractMinimalTestNodeTask)iter.next();
+      if (task instanceof LogicalTest)
+        ret.add(task);
+      else
+      {
+        getLogicalTestsRecursively(task, ret);
+      }
+    }
+  }
+
+  public Collection getContainedProcessNames()
+  {
+    Collection ret = new ArrayList();
+    getContainedProcessNamesRecursively(this, ret);
+    // Since getContainedProcessNames() is called in order to activate
+    // processes, we also need to get all processes mapped in the
+    // init-hook containing the independent-test-group.
+    TestSuiteTask task = getTestSuiteTask();
+    // If this is a test suite task, get all the processes which are
+    // mapped in for the init-hook
+    ret.addAll(task.getInitHookMappedProcesses());
+    return ret;
+  }
+
+  private void getContainedProcessNamesRecursively(
+    AbstractMinimalTestNodeTask inTask,
+    Collection ret)
+  {
+    for (Iterator iter = inTask.getChildren().iterator(); iter.hasNext();)
+    {
+      AbstractMinimalTestNodeTask task =
+        (AbstractMinimalTestNodeTask)iter.next();
+
+      if (task instanceof EntryPoint)
+      {
+        // an EntryPoint terminates the recursion
+        ret.addAll(((EntryPoint)task).getContainedProcessNames());
+      }
+      else if (task instanceof TestSuiteTask)
+      {
+        // If this is a test suite task, get all the processes which are
+        // mapped in for the init-hook
+        ret.addAll(((TestSuiteTask)task).getInitHookMappedProcesses());
+        // still need to recursively get process names for nested tasks
+        getContainedProcessNamesRecursively(task, ret);
+      }
+      else
+      {
+        getContainedProcessNamesRecursively(task, ret);
+      }
+    }
+  }
+
+  public String toString()
+  {
+    return getName();
+  }
+}

Propchange: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/IndependentTestGroupTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InformResultConverter.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InformResultConverter.java?rev=232310&r1=232309&r2=232310&view=diff
==============================================================================
--- beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InformResultConverter.java (original)
+++ beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InformResultConverter.java Fri Aug 12 08:12:28 2005
@@ -1,29 +1,29 @@
-package org.apache.beehive.test.tools.tch.core;
-
-import org.apache.beehive.test.tools.tch.core.test.ResultHandler;
-import org.apache.beehive.test.tools.tch.util.TestResultBean;
-
-// Thought we need this for javatest utility classes, 
-// but actually AutoTest is doing that for us.
-// Keep it around for now, but feel free to delete.
-public class InformResultConverter implements ResultHandler
-{
-
-  private ResultHandler resultHandler = null;
-
-  public InformResultConverter(ResultHandler in)
-  {
-    resultHandler = in;
-  }
-
-  public void submitResult(TestResultBean tr)
-  {
-    submitResult(tr, tr.getName());
-  }
-
-  public void submitResult(TestResultBean tr, String resultName)
-  {
-    resultHandler.submitResult(tr, resultName);
-  }
-
-}
+package org.apache.beehive.test.tools.tch.core;
+
+import org.apache.beehive.test.tools.tch.core.test.ResultHandler;
+import org.apache.beehive.test.tools.tch.util.TestResultBean;
+
+// Thought we need this for javatest utility classes, 
+// but actually AutoTest is doing that for us.
+// Keep it around for now, but feel free to delete.
+public class InformResultConverter implements ResultHandler
+{
+
+  private ResultHandler resultHandler = null;
+
+  public InformResultConverter(ResultHandler in)
+  {
+    resultHandler = in;
+  }
+
+  public void submitResult(TestResultBean tr)
+  {
+    submitResult(tr, tr.getName());
+  }
+
+  public void submitResult(TestResultBean tr, String resultName)
+  {
+    resultHandler.submitResult(tr, resultName);
+  }
+
+}

Propchange: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InformResultConverter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitHookTask.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitHookTask.java?rev=232310&r1=232309&r2=232310&view=diff
==============================================================================
--- beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitHookTask.java (original)
+++ beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitHookTask.java Fri Aug 12 08:12:28 2005
@@ -1,27 +1,27 @@
-package org.apache.beehive.test.tools.tch.core;
-
-import org.apache.tools.ant.BuildException;
-
-//Just here so that addTask() may differentiate with dependencies on tasdef in Ant XML
-
-public class InitHookTask extends HookTask
-{
-  protected String getDefaultName()
-  {
-    return "init-hook";
-  }
-
-  public boolean run() throws BuildException
-  {
-    // need to set state on the test-suite indicating that the cleanup hook has attemped
-    // to run
-    if (testNodeTask != null)
-    {
-      if (testNodeTask instanceof TestSuiteTask)
-      {
-        ((TestSuiteTask)testNodeTask).setInitHookStarted(true);
-      }
-    }
-    return super.run();
-  }
-}
+package org.apache.beehive.test.tools.tch.core;
+
+import org.apache.tools.ant.BuildException;
+
+//Just here so that addTask() may differentiate with dependencies on tasdef in Ant XML
+
+public class InitHookTask extends HookTask
+{
+  protected String getDefaultName()
+  {
+    return "init-hook";
+  }
+
+  public boolean run() throws BuildException
+  {
+    // need to set state on the test-suite indicating that the cleanup hook has attemped
+    // to run
+    if (testNodeTask != null)
+    {
+      if (testNodeTask instanceof TestSuiteTask)
+      {
+        ((TestSuiteTask)testNodeTask).setInitHookStarted(true);
+      }
+    }
+    return super.run();
+  }
+}

Propchange: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitHookTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitLoggerTask.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitLoggerTask.java?rev=232310&r1=232309&r2=232310&view=diff
==============================================================================
--- beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitLoggerTask.java (original)
+++ beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitLoggerTask.java Fri Aug 12 08:12:28 2005
@@ -1,208 +1,208 @@
-package org.apache.beehive.test.tools.tch.core;
-
-import java.io.File;
-import java.text.SimpleDateFormat;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.Project;
-
-import org.apache.beehive.test.tools.tch.core.test.TestRegistry;
-import org.apache.beehive.test.tools.tch.logger.LogDestination;
-import org.apache.beehive.test.tools.tch.logger.LogType;
-import org.apache.beehive.test.tools.tch.logger.Logger;
-import org.apache.beehive.test.tools.tch.logger.LoggerConfiguration;
-import org.apache.beehive.test.tools.tch.logger.LoggerFactory;
-import org.apache.beehive.test.tools.tch.logger.LoggerSingleton;
-import org.apache.beehive.test.tools.tch.util.TchConstants;
-
-public class InitLoggerTask extends BaseTask
-{
-  public void execute()
-  {
-    initLoggers();
-  }
-
-  private void initLoggers()
-  {
-    File baseDir = AntProperties.getLogBasedir();
-    String baseFileName = AntProperties.getBaseLogfileName();
-
-    log("Initializing logger...");
-    log("base dir is " + baseDir.getAbsolutePath());
-    log("base log filename is '" + baseFileName + "'");
-    LoggerFactory loggerFactory = new LoggerFactory(baseDir, baseFileName);
-    loggerFactory.setGtlfFileExtension(AntProperties.getGTLFLogExtension());
-
-    try
-    {
-      boolean usedLoggerConfFile = createCustomLoggers(loggerFactory);
-      if (!usedLoggerConfFile)
-      {
-        createStandardLoggers(loggerFactory);
-      }
-      else
-      {
-        log("Used logger configuration file", Project.MSG_VERBOSE);
-      }
-
-      // if we do not log to stdout, we might still want to print a summary 
-      // (to stdout) at the end of the run
-      if (!AntProperties.isLogToStdoutEnabled()
-        && AntProperties.isLogBannersEnabled())
-      {
-        loggerFactory.addStdoutStatsLogger();
-      }
-
-      // this logger should be deprecated 
-      // jdi is not solid enough to get threaddumps
-      if (AntProperties.threaddumpsEnabled())
-      {
-        log("Threaddump logger enabled");
-        loggerFactory.addThreadDumpLogger();
-      }
-
-      String customLogger = AntProperties.getCustomLoggerClass();
-      String customLogSuffix = AntProperties.getCustomLogSuffix();
-      if (customLogger != null)
-        loggerFactory.addCustomLogger(customLogger, customLogSuffix);
-
-      Logger logger = loggerFactory.getLogger();
-
-      /* added to enable debug level to be specified for logger - echu */
-      Integer debugLevelInt = AntProperties.getLogDebugLevel();
-      logger.setMinLogLevel(debugLevelInt.intValue());
-      log("log debug-level set to " + debugLevelInt);
-
-      String dateFormat = AntProperties.getLogDateFormat();
-      SimpleDateFormat logDateFormat = new SimpleDateFormat(dateFormat);
-      log("log date format set to " + logDateFormat.toPattern());
-      log("");
-
-      logger.open();
-
-      Map m = new HashMap(2);
-      m.put(
-        TchConstants.EXPECTED_NUM_TESTS,
-        String.valueOf(TestRegistry.getRegistry().getExpectedNumTests()));
-      m.put(
-        TchConstants.LOG_PROGRESS_INFO_KEY,
-        String.valueOf(AntProperties.getLogProgressInfo()));
-
-      logger.logInit(m);
-
-      // FIXME - want to do this before calling open, 
-      // but can't right now because of code ugliness.
-      logger.setDateFormat(logDateFormat);
-
-      LoggerSingleton.setLogger(logger);
-    }
-    catch (Exception e)
-    {
-      throw new BuildException(
-        "Failed to open loggers - " + e.getMessage(),
-        e,
-        getLocation());
-    }
-  }
-
-  /**
-   * @param loggerFactory
-   * @return true if we found/used a logger configuration file, false otherwise.
-   */
-  private boolean createCustomLoggers(LoggerFactory loggerFactory)
-  {
-    boolean usedConfFile = false;
-    // check if we have a logger configuration file
-    try
-    {
-      File f = AntProperties.getLoggerConfFile();
-      log("Attempting to load logger configuration file:  " + f.getAbsolutePath(), Project.MSG_VERBOSE);
-      LoggerConfiguration conf = LoggerConfiguration.getLoggerConfiguration(f);
-      log("Logger configuration file:", Project.MSG_DEBUG);
-      log(conf.toString(), Project.MSG_DEBUG);
-      log("", Project.MSG_DEBUG);
-     
-      usedConfFile = true;
-      for (Iterator iter = conf.getLoggerEntries().iterator(); iter.hasNext();)
-      {
-        LoggerConfiguration.LoggerEntry entry =
-          (LoggerConfiguration.LoggerEntry)iter.next();
-
-        // check logger type/destination, and make sure we actually want it 
-        // (to be consistent with property settings)
-
-        // if logging to stdout is disabled, do not let any stdout loggers get through
-        if (entry.getDestination() == LogDestination.CONSOLE
-          && !AntProperties.isLogToStdoutEnabled())
-          continue;
-        // ant file gen (jar logger) may be disabled...
-        else if (
-          entry.getDestination() == LogDestination.JAR
-            && !AntProperties.isAntFileGenEnabled())
-          continue;
-
-        // gtlf logging may be disabled...  
-        else if (
-          entry.getType() == LogType.GTLF && !AntProperties.isLogGTLFEnabled())
-          continue;
-        // verbose log may be disabled...
-        else if (
-          entry.getType() == LogType.VERBOSE_DEBUG
-            && !AntProperties.isLogVerboseDebugEnabled())
-          continue;
-        // internal comparison logger (tch testing) may be disabled
-        else if (
-          entry.getType() == LogType.COMPARISON
-            && !AntProperties.isLogComparisonEnabled())
-          continue;
-        //composite output logger
-        else if (
-          entry.getType() == LogType.COMPOSITE_OUTPUT
-            && !AntProperties.isLogCompositeEnabled())
-          continue;
-
-        log("Registering logger " + entry.toString(), Project.MSG_VERBOSE);
-
-        // ok, seems like we really do have nothing against adding this logger
-        loggerFactory.addLogger(
-          entry.getClassname(),
-          entry.getProperties(),
-          entry.getType(),
-          entry.getDestination());
-      }
-    }
-    catch (LoggerConfiguration.ConfigurationFileNotFoundException ex)
-    {
-      usedConfFile = false;
-    }
-    return usedConfFile;
-  }
-
-  /**
-   * Creates the standard set of Tch loggers.
-   * @param loggerFactory
-   */
-  private void createStandardLoggers(LoggerFactory loggerFactory)
-  {
-    loggerFactory.addStandardLogger();
-    loggerFactory.addDebugLogger();
-    if (AntProperties.isAntFileGenEnabled())
-      loggerFactory.addJARLogger();
-    if (AntProperties.isLogVerboseDebugEnabled())
-      loggerFactory.addVerboseDebugLogger();
-    if (AntProperties.isLogComparisonEnabled())
-      loggerFactory.addComparisonLogger();
-    if (AntProperties.isLogGTLFEnabled())
-      loggerFactory.addGTLFLogger();
-    if (AntProperties.isLogToStdoutEnabled())
-      loggerFactory.addStdoutLogger();
-	if (AntProperties.isLogCompositeEnabled())
-	  loggerFactory.addCompositeLogger();
-
-
-  }
-
-}
+package org.apache.beehive.test.tools.tch.core;
+
+import java.io.File;
+import java.text.SimpleDateFormat;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+
+import org.apache.beehive.test.tools.tch.core.test.TestRegistry;
+import org.apache.beehive.test.tools.tch.logger.LogDestination;
+import org.apache.beehive.test.tools.tch.logger.LogType;
+import org.apache.beehive.test.tools.tch.logger.Logger;
+import org.apache.beehive.test.tools.tch.logger.LoggerConfiguration;
+import org.apache.beehive.test.tools.tch.logger.LoggerFactory;
+import org.apache.beehive.test.tools.tch.logger.LoggerSingleton;
+import org.apache.beehive.test.tools.tch.util.TchConstants;
+
+public class InitLoggerTask extends BaseTask
+{
+  public void execute()
+  {
+    initLoggers();
+  }
+
+  private void initLoggers()
+  {
+    File baseDir = AntProperties.getLogBasedir();
+    String baseFileName = AntProperties.getBaseLogfileName();
+
+    log("Initializing logger...");
+    log("base dir is " + baseDir.getAbsolutePath());
+    log("base log filename is '" + baseFileName + "'");
+    LoggerFactory loggerFactory = new LoggerFactory(baseDir, baseFileName);
+    loggerFactory.setGtlfFileExtension(AntProperties.getGTLFLogExtension());
+
+    try
+    {
+      boolean usedLoggerConfFile = createCustomLoggers(loggerFactory);
+      if (!usedLoggerConfFile)
+      {
+        createStandardLoggers(loggerFactory);
+      }
+      else
+      {
+        log("Used logger configuration file", Project.MSG_VERBOSE);
+      }
+
+      // if we do not log to stdout, we might still want to print a summary 
+      // (to stdout) at the end of the run
+      if (!AntProperties.isLogToStdoutEnabled()
+        && AntProperties.isLogBannersEnabled())
+      {
+        loggerFactory.addStdoutStatsLogger();
+      }
+
+      // this logger should be deprecated 
+      // jdi is not solid enough to get threaddumps
+      if (AntProperties.threaddumpsEnabled())
+      {
+        log("Threaddump logger enabled");
+        loggerFactory.addThreadDumpLogger();
+      }
+
+      String customLogger = AntProperties.getCustomLoggerClass();
+      String customLogSuffix = AntProperties.getCustomLogSuffix();
+      if (customLogger != null)
+        loggerFactory.addCustomLogger(customLogger, customLogSuffix);
+
+      Logger logger = loggerFactory.getLogger();
+
+      /* added to enable debug level to be specified for logger - echu */
+      Integer debugLevelInt = AntProperties.getLogDebugLevel();
+      logger.setMinLogLevel(debugLevelInt.intValue());
+      log("log debug-level set to " + debugLevelInt);
+
+      String dateFormat = AntProperties.getLogDateFormat();
+      SimpleDateFormat logDateFormat = new SimpleDateFormat(dateFormat);
+      log("log date format set to " + logDateFormat.toPattern());
+      log("");
+
+      logger.open();
+
+      Map m = new HashMap(2);
+      m.put(
+        TchConstants.EXPECTED_NUM_TESTS,
+        String.valueOf(TestRegistry.getRegistry().getExpectedNumTests()));
+      m.put(
+        TchConstants.LOG_PROGRESS_INFO_KEY,
+        String.valueOf(AntProperties.getLogProgressInfo()));
+
+      logger.logInit(m);
+
+      // FIXME - want to do this before calling open, 
+      // but can't right now because of code ugliness.
+      logger.setDateFormat(logDateFormat);
+
+      LoggerSingleton.setLogger(logger);
+    }
+    catch (Exception e)
+    {
+      throw new BuildException(
+        "Failed to open loggers - " + e.getMessage(),
+        e,
+        getLocation());
+    }
+  }
+
+  /**
+   * @param loggerFactory
+   * @return true if we found/used a logger configuration file, false otherwise.
+   */
+  private boolean createCustomLoggers(LoggerFactory loggerFactory)
+  {
+    boolean usedConfFile = false;
+    // check if we have a logger configuration file
+    try
+    {
+      File f = AntProperties.getLoggerConfFile();
+      log("Attempting to load logger configuration file:  " + f.getAbsolutePath(), Project.MSG_VERBOSE);
+      LoggerConfiguration conf = LoggerConfiguration.getLoggerConfiguration(f);
+      log("Logger configuration file:", Project.MSG_DEBUG);
+      log(conf.toString(), Project.MSG_DEBUG);
+      log("", Project.MSG_DEBUG);
+     
+      usedConfFile = true;
+      for (Iterator iter = conf.getLoggerEntries().iterator(); iter.hasNext();)
+      {
+        LoggerConfiguration.LoggerEntry entry =
+          (LoggerConfiguration.LoggerEntry)iter.next();
+
+        // check logger type/destination, and make sure we actually want it 
+        // (to be consistent with property settings)
+
+        // if logging to stdout is disabled, do not let any stdout loggers get through
+        if (entry.getDestination() == LogDestination.CONSOLE
+          && !AntProperties.isLogToStdoutEnabled())
+          continue;
+        // ant file gen (jar logger) may be disabled...
+        else if (
+          entry.getDestination() == LogDestination.JAR
+            && !AntProperties.isAntFileGenEnabled())
+          continue;
+
+        // gtlf logging may be disabled...  
+        else if (
+          entry.getType() == LogType.GTLF && !AntProperties.isLogGTLFEnabled())
+          continue;
+        // verbose log may be disabled...
+        else if (
+          entry.getType() == LogType.VERBOSE_DEBUG
+            && !AntProperties.isLogVerboseDebugEnabled())
+          continue;
+        // internal comparison logger (tch testing) may be disabled
+        else if (
+          entry.getType() == LogType.COMPARISON
+            && !AntProperties.isLogComparisonEnabled())
+          continue;
+        //composite output logger
+        else if (
+          entry.getType() == LogType.COMPOSITE_OUTPUT
+            && !AntProperties.isLogCompositeEnabled())
+          continue;
+
+        log("Registering logger " + entry.toString(), Project.MSG_VERBOSE);
+
+        // ok, seems like we really do have nothing against adding this logger
+        loggerFactory.addLogger(
+          entry.getClassname(),
+          entry.getProperties(),
+          entry.getType(),
+          entry.getDestination());
+      }
+    }
+    catch (LoggerConfiguration.ConfigurationFileNotFoundException ex)
+    {
+      usedConfFile = false;
+    }
+    return usedConfFile;
+  }
+
+  /**
+   * Creates the standard set of Tch loggers.
+   * @param loggerFactory
+   */
+  private void createStandardLoggers(LoggerFactory loggerFactory)
+  {
+    loggerFactory.addStandardLogger();
+    loggerFactory.addDebugLogger();
+    if (AntProperties.isAntFileGenEnabled())
+      loggerFactory.addJARLogger();
+    if (AntProperties.isLogVerboseDebugEnabled())
+      loggerFactory.addVerboseDebugLogger();
+    if (AntProperties.isLogComparisonEnabled())
+      loggerFactory.addComparisonLogger();
+    if (AntProperties.isLogGTLFEnabled())
+      loggerFactory.addGTLFLogger();
+    if (AntProperties.isLogToStdoutEnabled())
+      loggerFactory.addStdoutLogger();
+	if (AntProperties.isLogCompositeEnabled())
+	  loggerFactory.addCompositeLogger();
+
+
+  }
+
+}

Propchange: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitLoggerTask.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitProcessManagementTask.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitProcessManagementTask.java?rev=232310&r1=232309&r2=232310&view=diff
==============================================================================
--- beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitProcessManagementTask.java (original)
+++ beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitProcessManagementTask.java Fri Aug 12 08:12:28 2005
@@ -1,203 +1,203 @@
-package org.apache.beehive.test.tools.tch.core;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-
-import org.apache.beehive.test.tools.tch.core.configuration.ErrorMessageConstants;
-import org.apache.beehive.test.tools.tch.core.configuration.NonfatalValidationException;
-import org.apache.beehive.test.tools.tch.core.process.Process;
-import org.apache.beehive.test.tools.tch.core.process.ProcessManager;
-import org.apache.beehive.test.tools.tch.core.process.ProcessRegistry;
-import org.apache.beehive.test.tools.tch.core.test.TestRegistry;
-
-public class InitProcessManagementTask extends BaseTask
-{
-  private ProcessRegistry processRegistry = ProcessRegistry.getRegistry();
-  private TestRegistry testRegistry = TestRegistry.getRegistry();
-
-  public void execute()
-  {
-    // activate all mapped processes and check if they are valid
-    // do not initialize process managers if they are not
-    activateProcesses();
-    validateActiveProcesses();
-    if (!isValid())
-      return;
-
-    preInitProcessManagers();
-    // this might activate more processes, so validate again
-    validateActiveProcesses();
-    aggregateProcessManagerValidationErrors();
-    if (!isValid())
-      return;
-
-    initProcessManagers();
-    aggregateProcessManagerValidationErrors();
-    logActiveProcessNames();
-  }
-
-  private void activateProcesses()
-  {
-    for (Iterator iter = testRegistry.getActiveProcessNames().iterator();
-      iter.hasNext();
-      )
-    {
-      ProcessRegistry.Entry entry = null;
-      try
-      {
-        entry = processRegistry.getProcessEntry((String)iter.next());
-      }
-      catch (NonfatalValidationException ex)
-      {
-        // can happen if mapped name does not exist (user error)
-        // in that case, the tests that have this process mapped
-        // will be invalidated, and we just ignore it here
-        continue;
-      }
-      Process p = entry.getProcess();
-      if (!p.isValid())
-      {
-        addInvalidations(
-          p.getInvalidationManager().getNonfatalValidationAggregate());
-      }
-      else
-      {
-        p.activate();
-      }
-    }
-  }
-
-  private void validateActiveProcesses()
-  {
-    for (Iterator iter = getActiveProcessEntries().iterator(); iter.hasNext();)
-    {
-      Process p = ((ProcessRegistry.Entry)iter.next()).getProcess();
-      if (!p.isValid())
-        addInvalidations(
-          p.getInvalidationManager().getNonfatalValidationAggregate());
-    }
-  }
-
-  private Collection getActiveProcessEntries()
-  {
-    Collection activeProcessEntries = new HashSet();
-    for (Iterator iter = processRegistry.getEntryIterator(); iter.hasNext();)
-    {
-      ProcessRegistry.Entry entry = (ProcessRegistry.Entry)iter.next();
-      if (entry.getProcess().isActive())
-        activeProcessEntries.add(entry);
-    }
-    return activeProcessEntries;
-  }
-
-  private void preInitProcessManagers()
-  {
-    // only want to preinitialize the processes that are active (== mapped)
-    // iterate over all active processes, and call preinit with those, on their
-    // ProcessManager
-    Collection active = getActiveProcessEntries();
-    if (!active.isEmpty())
-      log("Process management pre-initialization starting...");
-    for (Iterator iter = active.iterator(); iter.hasNext();)
-    {
-      ProcessRegistry.Entry entry = null;
-      try
-      {
-        entry = (ProcessRegistry.Entry)iter.next();
-        log("  ...with process: " + entry.getProcess().getName());
-        entry.getProcessManager().preInit(entry.getProcess(), this);
-      }
-      catch (NonfatalValidationException ex)
-      {
-        invalidate(ex);
-      }
-      catch (Exception ex)
-      {
-        String message =
-          "Failed to pre-init process' PM: " + entry.getProcess().getName();
-
-        NonfatalValidationException fatalEx =
-          new NonfatalValidationException(
-            ex,
-            ErrorMessageConstants.FATAL_PROCESS_MANAGEMENT_ERROR_CODE,
-            ErrorMessageConstants.MESSAGE,
-            message);
-        invalidate(fatalEx);
-      }
-    }
-    log("");
-  }
-
-  private void initProcessManagers()
-  {
-    // only want to initialize the processes that are active (== mapped)
-    // iterate over all active processes, and call init with those, on their
-    // ProcessManager
-    Collection active = getActiveProcessEntries();
-    if (!active.isEmpty())
-      log("Process management initialization starting...");
-    for (Iterator iter = active.iterator(); iter.hasNext();)
-    {
-      ProcessRegistry.Entry entry = null;
-      try
-      {
-        entry = (ProcessRegistry.Entry)iter.next();
-        log("  ...with process: " + entry.getProcess().getName());
-        entry.getProcessManager().init(entry.getProcess(), this);
-      }
-      catch (NonfatalValidationException ex)
-      {
-        invalidate(ex);
-      }
-      catch (Exception ex)
-      {
-        String message =
-          "Failed to init process' PM: " + entry.getProcess().getName();
-
-        NonfatalValidationException fatalEx =
-          new NonfatalValidationException(
-            ex,
-            ErrorMessageConstants.FATAL_PROCESS_MANAGEMENT_ERROR_CODE,
-            ErrorMessageConstants.MESSAGE,
-            message);
-        invalidate(fatalEx);
-      }
-    }
-    log("");
-  }
-
-  private void aggregateProcessManagerValidationErrors()
-  {
-    Collection checkedProcessManagers = new HashSet();
-    for (Iterator iter = processRegistry.getEntryIterator(); iter.hasNext();)
-    {
-      ProcessRegistry.Entry entry = (ProcessRegistry.Entry)iter.next();
-      ProcessManager pm = entry.getProcessManager();
-      if (!pm.isValid() && !checkedProcessManagers.contains(pm))
-      {
-        checkedProcessManagers.add(pm);
-        addInvalidations(pm.getNonfatalValidationAggregate());
-      }
-    }
-  }
-
-  private void logActiveProcessNames()
-  {
-    Collection activeProcessNames = new HashSet();
-    for (Iterator iter = processRegistry.getEntryIterator(); iter.hasNext();)
-    {
-      ProcessRegistry.Entry entry = (ProcessRegistry.Entry)iter.next();
-      if (entry.getProcess().isActive())
-        activeProcessNames.add(entry.getProcess().getName());
-    }
-
-    // some logic for printing stuff to the screen
-    if (activeProcessNames.isEmpty())
-      log(" No active processes");
-    else
-      log("Active processes are: " + activeProcessNames);
-
-    log("");
-  }
-}
+package org.apache.beehive.test.tools.tch.core;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+
+import org.apache.beehive.test.tools.tch.core.configuration.ErrorMessageConstants;
+import org.apache.beehive.test.tools.tch.core.configuration.NonfatalValidationException;
+import org.apache.beehive.test.tools.tch.core.process.Process;
+import org.apache.beehive.test.tools.tch.core.process.ProcessManager;
+import org.apache.beehive.test.tools.tch.core.process.ProcessRegistry;
+import org.apache.beehive.test.tools.tch.core.test.TestRegistry;
+
+public class InitProcessManagementTask extends BaseTask
+{
+  private ProcessRegistry processRegistry = ProcessRegistry.getRegistry();
+  private TestRegistry testRegistry = TestRegistry.getRegistry();
+
+  public void execute()
+  {
+    // activate all mapped processes and check if they are valid
+    // do not initialize process managers if they are not
+    activateProcesses();
+    validateActiveProcesses();
+    if (!isValid())
+      return;
+
+    preInitProcessManagers();
+    // this might activate more processes, so validate again
+    validateActiveProcesses();
+    aggregateProcessManagerValidationErrors();
+    if (!isValid())
+      return;
+
+    initProcessManagers();
+    aggregateProcessManagerValidationErrors();
+    logActiveProcessNames();
+  }
+
+  private void activateProcesses()
+  {
+    for (Iterator iter = testRegistry.getActiveProcessNames().iterator();
+      iter.hasNext();
+      )
+    {
+      ProcessRegistry.Entry entry = null;
+      try
+      {
+        entry = processRegistry.getProcessEntry((String)iter.next());
+      }
+      catch (NonfatalValidationException ex)
+      {
+        // can happen if mapped name does not exist (user error)
+        // in that case, the tests that have this process mapped
+        // will be invalidated, and we just ignore it here
+        continue;
+      }
+      Process p = entry.getProcess();
+      if (!p.isValid())
+      {
+        addInvalidations(
+          p.getInvalidationManager().getNonfatalValidationAggregate());
+      }
+      else
+      {
+        p.activate();
+      }
+    }
+  }
+
+  private void validateActiveProcesses()
+  {
+    for (Iterator iter = getActiveProcessEntries().iterator(); iter.hasNext();)
+    {
+      Process p = ((ProcessRegistry.Entry)iter.next()).getProcess();
+      if (!p.isValid())
+        addInvalidations(
+          p.getInvalidationManager().getNonfatalValidationAggregate());
+    }
+  }
+
+  private Collection getActiveProcessEntries()
+  {
+    Collection activeProcessEntries = new HashSet();
+    for (Iterator iter = processRegistry.getEntryIterator(); iter.hasNext();)
+    {
+      ProcessRegistry.Entry entry = (ProcessRegistry.Entry)iter.next();
+      if (entry.getProcess().isActive())
+        activeProcessEntries.add(entry);
+    }
+    return activeProcessEntries;
+  }
+
+  private void preInitProcessManagers()
+  {
+    // only want to preinitialize the processes that are active (== mapped)
+    // iterate over all active processes, and call preinit with those, on their
+    // ProcessManager
+    Collection active = getActiveProcessEntries();
+    if (!active.isEmpty())
+      log("Process management pre-initialization starting...");
+    for (Iterator iter = active.iterator(); iter.hasNext();)
+    {
+      ProcessRegistry.Entry entry = null;
+      try
+      {
+        entry = (ProcessRegistry.Entry)iter.next();
+        log("  ...with process: " + entry.getProcess().getName());
+        entry.getProcessManager().preInit(entry.getProcess(), this);
+      }
+      catch (NonfatalValidationException ex)
+      {
+        invalidate(ex);
+      }
+      catch (Exception ex)
+      {
+        String message =
+          "Failed to pre-init process' PM: " + entry.getProcess().getName();
+
+        NonfatalValidationException fatalEx =
+          new NonfatalValidationException(
+            ex,
+            ErrorMessageConstants.FATAL_PROCESS_MANAGEMENT_ERROR_CODE,
+            ErrorMessageConstants.MESSAGE,
+            message);
+        invalidate(fatalEx);
+      }
+    }
+    log("");
+  }
+
+  private void initProcessManagers()
+  {
+    // only want to initialize the processes that are active (== mapped)
+    // iterate over all active processes, and call init with those, on their
+    // ProcessManager
+    Collection active = getActiveProcessEntries();
+    if (!active.isEmpty())
+      log("Process management initialization starting...");
+    for (Iterator iter = active.iterator(); iter.hasNext();)
+    {
+      ProcessRegistry.Entry entry = null;
+      try
+      {
+        entry = (ProcessRegistry.Entry)iter.next();
+        log("  ...with process: " + entry.getProcess().getName());
+        entry.getProcessManager().init(entry.getProcess(), this);
+      }
+      catch (NonfatalValidationException ex)
+      {
+        invalidate(ex);
+      }
+      catch (Exception ex)
+      {
+        String message =
+          "Failed to init process' PM: " + entry.getProcess().getName();
+
+        NonfatalValidationException fatalEx =
+          new NonfatalValidationException(
+            ex,
+            ErrorMessageConstants.FATAL_PROCESS_MANAGEMENT_ERROR_CODE,
+            ErrorMessageConstants.MESSAGE,
+            message);
+        invalidate(fatalEx);
+      }
+    }
+    log("");
+  }
+
+  private void aggregateProcessManagerValidationErrors()
+  {
+    Collection checkedProcessManagers = new HashSet();
+    for (Iterator iter = processRegistry.getEntryIterator(); iter.hasNext();)
+    {
+      ProcessRegistry.Entry entry = (ProcessRegistry.Entry)iter.next();
+      ProcessManager pm = entry.getProcessManager();
+      if (!pm.isValid() && !checkedProcessManagers.contains(pm))
+      {
+        checkedProcessManagers.add(pm);
+        addInvalidations(pm.getNonfatalValidationAggregate());
+      }
+    }
+  }
+
+  private void logActiveProcessNames()
+  {
+    Collection activeProcessNames = new HashSet();
+    for (Iterator iter = processRegistry.getEntryIterator(); iter.hasNext();)
+    {
+      ProcessRegistry.Entry entry = (ProcessRegistry.Entry)iter.next();
+      if (entry.getProcess().isActive())
+        activeProcessNames.add(entry.getProcess().getName());
+    }
+
+    // some logic for printing stuff to the screen
+    if (activeProcessNames.isEmpty())
+      log(" No active processes");
+    else
+      log("Active processes are: " + activeProcessNames);
+
+    log("");
+  }
+}

Propchange: beehive/trunk/controls/test/tools/tch/src/java/org/apache/beehive/test/tools/tch/core/InitProcessManagementTask.java
------------------------------------------------------------------------------
    svn:eol-style = native