[NO JIRA] Reduce console output during build by commenting out println statements in test code and trying to suppress stack traces of expected exceptions
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/component/CasMultiplierTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/component/CasMultiplierTest.java
index 2e45eb6..bbd6be8 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/component/CasMultiplierTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/component/CasMultiplierTest.java
@@ -95,7 +95,7 @@
       generated++;
       aCAS.setDocumentText(Integer.toString(generated));
       aCAS.setDocumentLanguage(Integer.toString(generated));
-      System.out.printf("%nGenerated: %s%n", aCAS.getDocumentText());
+//      System.out.printf("%nGenerated: %s%n", aCAS.getDocumentText());
     }
 
     @Override
@@ -134,7 +134,7 @@
       output.setDocumentText(Integer.toString(value+1));
       value = -1;
       
-      System.out.printf("  Out    : %s%n", output.getDocumentText());
+//      System.out.printf("  Out    : %s%n", output.getDocumentText());
       
       return output;
     }
@@ -146,7 +146,7 @@
       
       value = Integer.valueOf(aCAS.getDocumentText());
       
-      System.out.printf("  In     : %s%n", aCAS.getDocumentText());
+//      System.out.printf("  In     : %s%n", aCAS.getDocumentText());
     }
   }    
 
@@ -171,11 +171,11 @@
     @Override
     public void process(CAS aCAS) throws AnalysisEngineProcessException {
       int n = Integer.parseInt(aCAS.getDocumentLanguage());
-      System.out.printf("  In     : %s%n", aCAS.getDocumentLanguage());
+//      System.out.printf("  In     : %s%n", aCAS.getDocumentLanguage());
 
       n++;
       aCAS.setDocumentLanguage(Integer.toString(n));
-      System.out.printf("  Out    : %s%n", aCAS.getDocumentLanguage());
+//      System.out.printf("  Out    : %s%n", aCAS.getDocumentLanguage());
     }
   }
   
@@ -193,10 +193,10 @@
     
     @Override
     public void process(CAS aCAS) throws AnalysisEngineProcessException {
-      System.out.printf("Text result   : %s%n", aCAS.getDocumentText());
+//      System.out.printf("Text result   : %s%n", aCAS.getDocumentText());
       textResult = Integer.valueOf(aCAS.getDocumentText());
       
-      System.out.printf("Feature result   : %s%n", aCAS.getDocumentLanguage());
+//      System.out.printf("Feature result   : %s%n", aCAS.getDocumentLanguage());
       try {
         featureResult = Integer.valueOf(aCAS.getDocumentLanguage());
       }
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/component/ViewCreatorAnnotatorTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/component/ViewCreatorAnnotatorTest.java
index 027ab71..78e171d 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/component/ViewCreatorAnnotatorTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/component/ViewCreatorAnnotatorTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.uima.fit.component;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.catchThrowable;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
@@ -26,6 +28,7 @@
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASException;
+import org.apache.uima.cas.CASRuntimeException;
 import org.apache.uima.fit.ComponentTestBase;
 import org.apache.uima.fit.descriptor.SofaCapability;
 import org.apache.uima.fit.factory.AnalysisEngineFactory;
@@ -60,9 +63,9 @@
    * This test basically demonstrates that the default view does not need to be initialized because
    * it is done automatically.
    */
+  @SuppressWarnings("javadoc")
   @Test
-  public void testDefaultView() throws ResourceInitializationException,
-          AnalysisEngineProcessException {
+  public void testDefaultView() throws Exception {
     AnalysisEngine engine = AnalysisEngineFactory.createEngine(SofaAwareAnnotator.class,
             typeSystemDescription);
     engine.process(jCas);
@@ -80,33 +83,68 @@
    * some other view without initializing that other view first. This is the behavior that
    * SofaInitializerAnnotator addresses.
    */
-  @Test(expected = AnalysisEngineProcessException.class)
-  public void testOtherViewAware() throws ResourceInitializationException,
-          AnalysisEngineProcessException {
+  @SuppressWarnings("javadoc")
+  @Test
+  public void testOtherViewAware() throws Exception {
     AnalysisEngineDescription description = AnalysisEngineFactory.createEngineDescription(
             SofaAwareAnnotator.class, typeSystemDescription);
     AnalysisEngine engine = AnalysisEngineFactory.createEngine(description, "myView");
-    HideOutput hider = new HideOutput();
-    engine.process(jCas);
-    hider.restoreOutput();
+    
+    Throwable thrown = catchThrowable(() -> {
+      // Avoid exception being logged to the console
+      HideOutput hider = null;
+      try {
+        hider = new HideOutput();
+        engine.process(jCas);
+      }
+      finally {
+        if (hider != null) {
+          hider.restoreOutput();
+        }
+      }
+    });
+    
+    assertThat(thrown)
+        .as("Exception thrown when view does not exist")
+        .hasRootCauseInstanceOf(CASRuntimeException.class)
+        .hasStackTraceContaining("No sofaFS with name myView found");
   }
 
-  @Test(expected = AnalysisEngineProcessException.class)
+  @Test
   public void testOtherViewUnaware() throws ResourceInitializationException,
           AnalysisEngineProcessException {
     AnalysisEngineDescription description = AnalysisEngineFactory.createEngineDescription(
             SofaUnawareAnnotator.class, typeSystemDescription);
     AnalysisEngine engine = AnalysisEngineFactory.createEngine(description, "myView");
-    engine.process(jCas);
+    
+    Throwable thrown = catchThrowable(() -> {
+      // Avoid exception being logged to the console
+      HideOutput hider = null;
+      try {
+        hider = new HideOutput();
+        engine.process(jCas);
+      }
+      finally {
+        if (hider != null) {
+          hider.restoreOutput();
+        }
+      }
+    });
+    
+    assertThat(thrown)
+        .as("Exception thrown when view does not exist")
+        .hasRootCauseInstanceOf(CASRuntimeException.class)
+        .hasStackTraceContaining("No sofaFS with name myView found");
+
   }
 
   /**
    * This test demonstrates that running the viewCreator is doing the right thing (i.e. initializing
    * the view "myView")
    */
+  @SuppressWarnings("javadoc")
   @Test
-  public void testSofaInitializer() throws ResourceInitializationException,
-          AnalysisEngineProcessException, CASException {
+  public void testSofaInitializer() throws Exception {
     AnalysisEngineDescription description = AnalysisEngineFactory.createEngineDescription(
             SofaAwareAnnotator.class, typeSystemDescription);
     AnalysisEngine engine = AnalysisEngineFactory.createEngine(description, "myView");
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/component/ViewTextCopierAnnotatorTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/component/ViewTextCopierAnnotatorTest.java
index 1a5f2b0..e487565 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/component/ViewTextCopierAnnotatorTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/component/ViewTextCopierAnnotatorTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.uima.fit.component;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.catchThrowable;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
@@ -26,8 +28,10 @@
 import org.apache.uima.analysis_engine.AnalysisEngineProcessException;
 import org.apache.uima.cas.CAS;
 import org.apache.uima.cas.CASException;
+import org.apache.uima.cas.CASRuntimeException;
 import org.apache.uima.fit.ComponentTestBase;
 import org.apache.uima.fit.factory.AnalysisEngineFactory;
+import org.apache.uima.fit.testing.util.HideOutput;
 import org.apache.uima.jcas.JCas;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.junit.Test;
@@ -76,7 +80,7 @@
     assertNull(jCas.getDocumentText());
   }
 
-  @Test(expected = AnalysisEngineProcessException.class)
+  @Test
   public void testExceptions() throws ResourceInitializationException,
           AnalysisEngineProcessException {
 
@@ -87,6 +91,24 @@
             ViewTextCopierAnnotator.class, typeSystemDescription,
             ViewTextCopierAnnotator.PARAM_SOURCE_VIEW_NAME, sourceViewName,
             ViewTextCopierAnnotator.PARAM_DESTINATION_VIEW_NAME, destinationViewName);
-    viewCreator.process(jCas);
+    
+    Throwable thrown = catchThrowable(() -> {
+      // Avoid exception being logged to the console
+      HideOutput hider = null;
+      try {
+        hider = new HideOutput();
+        viewCreator.process(jCas); 
+      }
+      finally {
+        if (hider != null) {
+          hider.restoreOutput();
+        }
+      }
+    });
+    
+    assertThat(thrown)
+        .as("Exception thrown when source view does not exist")
+        .hasRootCauseInstanceOf(CASRuntimeException.class)
+        .hasStackTraceContaining("No sofaFS with name SourceView found");
   }
 }
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryExternalResourceTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryExternalResourceTest.java
index 7ad8d7c..dc6f5f9 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryExternalResourceTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/factory/AnalysisEngineFactoryExternalResourceTest.java
@@ -40,10 +40,7 @@
 import org.apache.uima.fit.descriptor.ExternalResource;
 import org.apache.uima.fit.factory.testRes.TestExternalResource;
 import org.apache.uima.fit.factory.testRes.TestSharedResourceObject;
-import org.apache.uima.resource.CustomResourceSpecifier;
 import org.apache.uima.resource.ExternalResourceDescription;
-import org.apache.uima.resource.ResourceCreationSpecifier;
-import org.apache.uima.resource.metadata.ExternalResourceBinding;
 import org.apache.uima.util.InvalidXMLException;
 import org.apache.uima.util.XMLInputSource;
 import org.junit.Before;
@@ -87,8 +84,8 @@
             TestAnalysisEngineWithResource.class, TestAnalysisEngineWithResource.PARAM_RESOURCE,
             resDesc));
 
-    dumpResourceConfiguration(aeDesc1);
-    dumpResourceConfiguration(aeDesc2);
+//    dumpResourceConfiguration(aeDesc1);
+//    dumpResourceConfiguration(aeDesc2);
 
     AnalysisEngine ae1 = createEngine(aeDesc1);
     AnalysisEngine ae2 = createEngine(aeDesc2);
@@ -136,14 +133,14 @@
             TestAnalysisEngineWithResource.class, TestAnalysisEngineWithResource.PARAM_RESOURCE,
             resDesc));
 
-    dumpResourceConfiguration(aeDesc1);
+//    dumpResourceConfiguration(aeDesc1);
 
     AnalysisEngineDescription aeDesc2 = saveLoad(createEngineDescription(
             TestAnalysisEngineWithResource.class, TestAnalysisEngineWithResource.PARAM_RESOURCE,
             resDesc));
 
-    dumpResourceConfiguration(aeDesc1);
-    dumpResourceConfiguration(aeDesc2);
+//    dumpResourceConfiguration(aeDesc1);
+//    dumpResourceConfiguration(aeDesc2);
 
     AnalysisEngine ae1 = createEngine(aeDesc1);
     AnalysisEngine ae2 = createEngine(aeDesc2);
@@ -174,7 +171,7 @@
                     TestExternalResource.PARAM_VALUE, TestExternalResource.EXPECTED_VALUE,
                     TestExternalResource2.PARAM_RESOURCE, resDesc)));
 
-    dumpResourceConfiguration(aeDesc);
+//    dumpResourceConfiguration(aeDesc);
 
     AnalysisEngine ae = createEngine(aeDesc);
     ae.process(ae.newCAS());
@@ -194,7 +191,7 @@
             TestAnalysisEngineWithResource.class, TestAnalysisEngineWithResource.PARAM_RESOURCE,
             resDesc));
 
-    dumpResourceConfiguration(aeDesc);
+//    dumpResourceConfiguration(aeDesc);
 
     AnalysisEngine ae = createEngine(aeDesc);
     ae.process(ae.newCAS());
@@ -218,8 +215,8 @@
             TestAnalysisEngineWithResource.class, TestAnalysisEngineWithResource.PARAM_RESOURCE,
             resDesc));
 
-    dumpResourceConfiguration(aeDesc1);
-    dumpResourceConfiguration(aeDesc2);
+//    dumpResourceConfiguration(aeDesc1);
+//    dumpResourceConfiguration(aeDesc2);
 
     AnalysisEngine ae1 = createEngine(aeDesc1);
     AnalysisEngine ae2 = createEngine(aeDesc2);
@@ -262,8 +259,8 @@
             TestAnalysisEngineWithSharedResourceObject.class,
             TestAnalysisEngineWithSharedResourceObject.PARAM_RESOURCE, resDesc));
 
-    dumpResourceConfiguration(aeDesc1);
-    dumpResourceConfiguration(aeDesc2);
+//    dumpResourceConfiguration(aeDesc1);
+//    dumpResourceConfiguration(aeDesc2);
 
     AnalysisEngine ae1 = createEngine(aeDesc1);
     AnalysisEngine ae2 = createEngine(aeDesc2);
@@ -335,7 +332,7 @@
             TestAnalysisEngineWithSharedResourceObject.class,
             TestAnalysisEngineWithSharedResourceObject.PARAM_RESOURCE, resDesc));
 
-    dumpResourceConfiguration(aeDesc);
+//    dumpResourceConfiguration(aeDesc);
 
     AnalysisEngine ae = createEngine(aeDesc);
     ae.process(ae.newCAS());
@@ -349,7 +346,7 @@
 
     @Override
     public void afterResourcesInitialized() {
-      System.out.println(getClass().getSimpleName() + ".afterResourcesInitialized()");
+//      System.out.println(getClass().getSimpleName() + ".afterResourcesInitialized()");
       // Ensure the External Resource is bound
       assertNotNull(resource);
       if (this != resource) {
@@ -369,8 +366,9 @@
     @ConfigurationParameter(name = ExternalResourceFactory.PARAM_RESOURCE_NAME)
     private String resourceName;
 
+    @Override
     public void afterResourcesInitialized() {
-      System.out.println(getClass().getSimpleName() + ".afterResourcesInitialized()");
+//      System.out.println(getClass().getSimpleName() + ".afterResourcesInitialized()");
       // Ensure the External Resource is bound
       assertNotNull(resource);
       if (this != resource) {
@@ -379,6 +377,7 @@
       assertConfiguredOk();
     }
 
+    @Override
     public String getResourceName() {
       return resourceName;
     }
@@ -393,7 +392,7 @@
 
     @Override
     public void process(CAS aCAS) throws AnalysisEngineProcessException {
-      System.out.println(getClass().getSimpleName() + ".process()");
+//      System.out.println(getClass().getSimpleName() + ".process()");
       assertNotNull(resource);
       resource.assertConfiguredOk();
     }
@@ -408,7 +407,7 @@
 
     @Override
     public void process(CAS aCAS) throws AnalysisEngineProcessException {
-      System.out.println(getClass().getSimpleName() + ".process()");
+//      System.out.println(getClass().getSimpleName() + ".process()");
       assertNotNull(resource);
       resource.assertConfiguredOk();
     }
@@ -422,24 +421,24 @@
             new XMLInputSource(new ByteArrayInputStream(bos.toByteArray()), null));
   }
 
-  private void dumpResourceConfiguration(ResourceCreationSpecifier aSpec) {
-    System.out.println("-- begin resource configuration");
-    for (ExternalResourceBinding b : aSpec.getResourceManagerConfiguration()
-            .getExternalResourceBindings()) {
-      System.out.printf("Binding : %s -> %s %n", b.getKey(), b.getResourceName());
-    }
-
-    for (ExternalResourceDescription r : aSpec.getResourceManagerConfiguration()
-            .getExternalResources()) {
-      if (r.getImplementationName() != null) {
-        System.out.printf("Resource: %s -> %s %n", r.getName(), r.getImplementationName());
-      } else {
-        System.out.printf("Resource: %s -> %s %n", r.getName(),
-                ((CustomResourceSpecifier) r.getResourceSpecifier()).getResourceClassName());
-      }
-    }
-    System.out.println("-- end resource configuration");
-  }
+//  private void dumpResourceConfiguration(ResourceCreationSpecifier aSpec) {
+//    System.out.println("-- begin resource configuration");
+//    for (ExternalResourceBinding b : aSpec.getResourceManagerConfiguration()
+//            .getExternalResourceBindings()) {
+//      System.out.printf("Binding : %s -> %s %n", b.getKey(), b.getResourceName());
+//    }
+//
+//    for (ExternalResourceDescription r : aSpec.getResourceManagerConfiguration()
+//            .getExternalResources()) {
+//      if (r.getImplementationName() != null) {
+//        System.out.printf("Resource: %s -> %s %n", r.getName(), r.getImplementationName());
+//      } else {
+//        System.out.printf("Resource: %s -> %s %n", r.getName(),
+//                ((CustomResourceSpecifier) r.getResourceSpecifier()).getResourceClassName());
+//      }
+//    }
+//    System.out.println("-- end resource configuration");
+//  }
 
   @Rule
   public TestName name = new TestName();
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/factory/testRes/TestExternalResource.java b/uimafit-core/src/test/java/org/apache/uima/fit/factory/testRes/TestExternalResource.java
index cc08b0a..7e5a596 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/factory/testRes/TestExternalResource.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/factory/testRes/TestExternalResource.java
@@ -34,7 +34,7 @@
   private String value;
 
   public void assertConfiguredOk() {
-    System.out.println(getClass().getSimpleName() + ".assertConfiguredOk()");
+//    System.out.println(getClass().getSimpleName() + ".assertConfiguredOk()");
     // Ensure normal parameters get passed to External Resource
     assertEquals(EXPECTED_VALUE, value);
   }
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/factory/testRes/TestSharedResourceObject.java b/uimafit-core/src/test/java/org/apache/uima/fit/factory/testRes/TestSharedResourceObject.java
index be52ac6..300f31c 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/factory/testRes/TestSharedResourceObject.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/factory/testRes/TestSharedResourceObject.java
@@ -37,11 +37,12 @@
   private String value;
 
   public void assertConfiguredOk() {
-    System.out.println(getClass().getSimpleName() + ".assertConfiguredOk()");
+//    System.out.println(getClass().getSimpleName() + ".assertConfiguredOk()");
     // Ensure normal parameters get passed to External Resource
     assertEquals(EXPECTED_VALUE, value);
   }
 
+  @Override
   public void load(DataResource aData) throws ResourceInitializationException {
     ConfigurationParameterInitializer.initialize(this, aData);
   }
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/util/CasUtilTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/util/CasUtilTest.java
index 67d0ae7..769502e 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/util/CasUtilTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/util/CasUtilTest.java
@@ -147,11 +147,11 @@
     }
 
     // Print what is expected
-    for (FeatureStructure fs : allFS) {
-      System.out.println("Type: " + fs.getType().getName() + "]");
-    }
-    System.out
-            .println("Tokens: [" + toText(select(cas, getType(cas, Token.class.getName()))) + "]");
+//    for (FeatureStructure fs : allFS) {
+//      System.out.println("Type: " + fs.getType().getName() + "]");
+//    }
+//    System.out
+//            .println("Tokens: [" + toText(select(cas, getType(cas, Token.class.getName()))) + "]");
 
     // Document Annotation, one sentence and 4 tokens.
     assertEquals(6, allFS.size());
diff --git a/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java b/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java
index 1984210..854fd9c 100644
--- a/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java
+++ b/uimafit-core/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java
@@ -134,8 +134,8 @@
       JCas jcas = cas.getJCas();
       Collection<Sentence> sentences = select(jcas, Sentence.class);
       
-      long timeNaive = 0;
-      long timeOptimized = 0;
+//      long timeNaive = 0;
+//      long timeOptimized = 0;
       
       // Prepare the index
       long timeIndexed = System.currentTimeMillis();
@@ -152,12 +152,12 @@
         long ti = System.currentTimeMillis();
         // The naive approach is assumed to be correct
         List<Token> expected = selectCovered(jcas, Token.class, t.getBegin(), t.getEnd());
-        timeNaive += System.currentTimeMillis() - ti;
+//        timeNaive += System.currentTimeMillis() - ti;
 
         // Record time for optimized selectCovered
         ti = System.currentTimeMillis();
         List<Token> actual1 = selectCovered(jcas, Token.class, t);
-        timeOptimized += System.currentTimeMillis() - ti;
+//        timeOptimized += System.currentTimeMillis() - ti;
 
         // Record index lookup time
         ti = System.currentTimeMillis();
@@ -169,14 +169,15 @@
         
         // System.out.printf("%n--- OK ---------------%n%n");
       }
-      System.out.printf(
-              "%3d Optimized: speed up factor %3.2f [naive:%4d optimized:%4d (diff:%4d)]%n", i,
-              (double) timeNaive / (double) timeOptimized, timeNaive, timeOptimized,
-              timeNaive - timeOptimized);
-      System.out.printf(
-              "%3d Indexed:   speed up factor %3.2f [naive:%4d indexed  :%4d (diff:%4d)]%n%n", i,
-              (double) timeNaive / (double) timeIndexed, timeNaive, timeIndexed,
-              timeNaive - timeIndexed);
+      
+//      System.out.printf(
+//              "%3d Optimized: speed up factor %3.2f [naive:%4d optimized:%4d (diff:%4d)]%n", i,
+//              (double) timeNaive / (double) timeOptimized, timeNaive, timeOptimized,
+//              timeNaive - timeOptimized);
+//      System.out.printf(
+//              "%3d Indexed:   speed up factor %3.2f [naive:%4d indexed  :%4d (diff:%4d)]%n%n", i,
+//              (double) timeNaive / (double) timeIndexed, timeNaive, timeIndexed,
+//              timeNaive - timeIndexed);
     }
   }
 
@@ -209,8 +210,8 @@
       JCas jcas = cas.getJCas();
       List<Token> tokens = new ArrayList<Token>(select(jcas, Token.class));
 
-      long timeNaive = 0;
-      long timeOptimized = 0;
+//      long timeNaive = 0;
+//      long timeOptimized = 0;
       for (int j = 0; j < ITERATIONS; j++) {
         Token t1 = tokens.get(rnd.nextInt(tokens.size()));
         Token t2 = tokens.get(rnd.nextInt(tokens.size()));
@@ -218,32 +219,32 @@
         int left = Math.min(t1.getEnd(), t2.getEnd());
         int right = Math.max(t1.getBegin(), t2.getBegin());
 
-        long ti;
+//        long ti;
         List<Sentence> reference;
         if ((t1.getBegin() < t2.getBegin() && t2.getBegin() < t1.getEnd())
                 || (t1.getBegin() < t2.getEnd() && t2.getEnd() < t1.getEnd())
                 || (t2.getBegin() < t1.getBegin() && t1.getBegin() < t2.getEnd())
                 || (t2.getBegin() < t1.getEnd() && t1.getEnd() < t2.getEnd())) {
           // If the boundary annotations overlap, the result must be empty
-          ti = System.currentTimeMillis();
+//          ti = System.currentTimeMillis();
           reference = new ArrayList<Sentence>();
-          timeNaive += System.currentTimeMillis() - ti;
+//          timeNaive += System.currentTimeMillis() - ti;
         } else {
-          ti = System.currentTimeMillis();
+//          ti = System.currentTimeMillis();
           reference = selectCovered(jcas, Sentence.class, left, right);
-          timeNaive += System.currentTimeMillis() - ti;
+//          timeNaive += System.currentTimeMillis() - ti;
         }
 
-        ti = System.currentTimeMillis();
+//        ti = System.currentTimeMillis();
         List<Sentence> actual = selectBetween(Sentence.class, t1, t2);
-        timeOptimized += System.currentTimeMillis() - ti;
+//        timeOptimized += System.currentTimeMillis() - ti;
 
         assertEquals("Naive: Searching between " + t1 + " and " + t2, reference, actual);
       }
 
-      System.out.format("Speed up factor %.2f [naive:%d optimized:%d diff:%d]\n",
-              (double) timeNaive / (double) timeOptimized, timeNaive, timeOptimized, timeNaive
-                      - timeOptimized);
+//      System.out.format("Speed up factor %.2f [naive:%d optimized:%d diff:%d]\n",
+//              (double) timeNaive / (double) timeOptimized, timeNaive, timeOptimized, timeNaive
+//                      - timeOptimized);
     }
   }
 
@@ -355,10 +356,10 @@
     }
 
     // Print what is expected
-    for (FeatureStructure fs : allFS) {
-      System.out.println("Type: " + fs.getType().getName() + "]");
-    }
-    System.out.println("Tokens: [" + toText(select(jCas, Token.class)) + "]");
+//    for (FeatureStructure fs : allFS) {
+//      System.out.println("Type: " + fs.getType().getName() + "]");
+//    }
+//    System.out.println("Tokens: [" + toText(select(jCas, Token.class)) + "]");
 
     // Document Annotation, one sentence and 4 tokens.
     assertEquals(6, allFS.size());
@@ -392,10 +393,10 @@
     }
 
     // Print what is expected
-    for (FeatureStructure fs : allFS) {
-      System.out.println("Type: " + fs.getType().getName() + "]");
-    }
-    System.out.println("Tokens: [" + toText(select(jCas, Token.class)) + "]");
+//    for (FeatureStructure fs : allFS) {
+//      System.out.println("Type: " + fs.getType().getName() + "]");
+//    }
+//    System.out.println("Tokens: [" + toText(select(jCas, Token.class)) + "]");
 
     // Document Annotation, one sentence and 4 tokens.
     assertEquals(6, allFS.size());
diff --git a/uimafit-cpe/src/test/java/org/apache/uima/fit/cpe/CasMultiplierTest.java b/uimafit-cpe/src/test/java/org/apache/uima/fit/cpe/CasMultiplierTest.java
index 2adcbd6..8f380f7 100644
--- a/uimafit-cpe/src/test/java/org/apache/uima/fit/cpe/CasMultiplierTest.java
+++ b/uimafit-cpe/src/test/java/org/apache/uima/fit/cpe/CasMultiplierTest.java
@@ -49,6 +49,7 @@
    * Simulates a CPE with CAS multipliers that always read one CAS and always produce one CAS.
    * It actually appears to work despite CPE not supporting CAS multipliers.
    */
+  @SuppressWarnings("javadoc")
   @Test
   public void testRunPipeline() throws Exception {
     CollectionReaderDescription reader = createReaderDescription(Reader.class);
@@ -79,8 +80,8 @@
     public void getNext(CAS aCAS) throws IOException, CollectionException {
       generated++;
       aCAS.setDocumentText(Integer.toString(generated));
-      System.out.printf("%n[%s] Generated: %s%n", Thread.currentThread().getName(),
-              aCAS.getDocumentText());
+//      System.out.printf("%n[%s] Generated: %s%n", Thread.currentThread().getName(),
+//              aCAS.getDocumentText());
     }
 
     @Override
@@ -119,8 +120,8 @@
       output.setDocumentText(Integer.toString(value+1));
       value = -1;
       
-      System.out.printf("[%s]   Out    : %s%n", Thread.currentThread().getName(),
-              output.getDocumentText());
+//      System.out.printf("[%s]   Out    : %s%n", Thread.currentThread().getName(),
+//              output.getDocumentText());
 
       return output;
     }
@@ -132,8 +133,8 @@
       
       value = Integer.valueOf(aCAS.getDocumentText());
       
-      System.out.printf("[%s]   In     : %s%n", Thread.currentThread().getName(),
-              aCAS.getDocumentText());
+//      System.out.printf("[%s]   In     : %s%n", Thread.currentThread().getName(),
+//              aCAS.getDocumentText());
     }
   }
   
@@ -149,7 +150,7 @@
     
     @Override
     public void process(CAS aCAS) throws AnalysisEngineProcessException {
-      System.out.printf("Result   : %s%n", aCAS.getDocumentText());
+//      System.out.printf("Result   : %s%n", aCAS.getDocumentText());
       result.add(Integer.valueOf(aCAS.getDocumentText()));
     }
   }
diff --git a/uimafit-cpe/src/test/java/org/apache/uima/fit/cpe/ExternalResourceFactoryTest.java b/uimafit-cpe/src/test/java/org/apache/uima/fit/cpe/ExternalResourceFactoryTest.java
index eae4b9e..06826f0 100644
--- a/uimafit-cpe/src/test/java/org/apache/uima/fit/cpe/ExternalResourceFactoryTest.java
+++ b/uimafit-cpe/src/test/java/org/apache/uima/fit/cpe/ExternalResourceFactoryTest.java
@@ -74,6 +74,7 @@
   /**
    * Test resource list.
    */
+  @SuppressWarnings("javadoc")
   @Test
   public void testMultiValue() throws Exception {
     ExternalResourceDescription extDesc1 = createExternalResourceDescription(ResourceWithAssert.class);
@@ -88,6 +89,7 @@
   /**
    * Test sharing a resource list between two AEs on the same aggregate.
    */
+  @SuppressWarnings("javadoc")
   @Test
   public void testMultiValue2() throws Exception {
     MultiValuedResourceAE.resources.clear();
@@ -111,6 +113,7 @@
   /**
    * Test sharing a resource list across aggregates.
    */
+  @SuppressWarnings("javadoc")
   @Test
   public void testMultiValue3() throws Exception {
     MultiValuedResourceAE.resources.clear();
@@ -134,6 +137,7 @@
   /**
    * Test nested resource lists.
    */
+  @SuppressWarnings("javadoc")
   @Test
   public void testMultiValue4() throws Exception {
     ExternalResourceDescription extDesc1 = createExternalResourceDescription(ResourceWithAssert.class);
@@ -178,8 +182,8 @@
       resources.add(resourceArray[0]);
       resources.add(resourceArray[1]);
 
-      System.out.printf("Element object 0: %d%n", resourceArray[0].hashCode());
-      System.out.printf("Element object 1: %d%n", resourceArray[1].hashCode());
+//      System.out.printf("Element object 0: %d%n", resourceArray[0].hashCode());
+//      System.out.printf("Element object 1: %d%n", resourceArray[1].hashCode());
 
       for (ResourceWithAssert res : resourceArray) {
         res.doAsserts();
@@ -208,8 +212,8 @@
       resources.add(resourceList.get(0));
       resources.add(resourceList.get(1));
 
-      System.out.printf("Element object 0: %d%n", resourceList.get(0).hashCode());
-      System.out.printf("Element object 1: %d%n", resourceList.get(1).hashCode());
+//      System.out.printf("Element object 0: %d%n", resourceList.get(0).hashCode());
+//      System.out.printf("Element object 1: %d%n", resourceList.get(1).hashCode());
 
       for (ResourceWithAssert res : resourceList) {
         res.doAsserts();
@@ -237,7 +241,7 @@
         assertEquals(prevHashCode, res.hashCode());
       }
 
-      System.out.println(getClass().getSimpleName() + ": " + res);
+//      System.out.println(getClass().getSimpleName() + ": " + res);
     }
 
     public static void reset() {
@@ -262,14 +266,17 @@
     @ConfigurationParameter(name = PARAM_EXTENSION, mandatory = true)
     private String extension;
 
+    @Override
     public InputStream getInputStream() throws IOException {
       return null;
     }
 
+    @Override
     public URI getUri() {
       return URI.create(uri + extension);
     }
 
+    @Override
     public URL getUrl() {
       return null;
     }
@@ -282,6 +289,7 @@
     @ConfigurationParameter(name = PARAM_EXTENSION, mandatory = true)
     private String extension;
 
+    @Override
     public DataResource getDataResource(String[] aParams) throws ResourceInitializationException {
       List<String> params = new ArrayList<String>(Arrays.asList(aParams));
       params.add(AnnotatedDataResource.PARAM_EXTENSION);
diff --git a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/component/ViewCreatorAnnotatorTest.java b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/component/ViewCreatorAnnotatorTest.java
index 3f78f75..5104522 100644
--- a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/component/ViewCreatorAnnotatorTest.java
+++ b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/component/ViewCreatorAnnotatorTest.java
@@ -60,6 +60,7 @@
    * This test basically demonstrates that the default view does not need to be initialized because
    * it is done automatically.
    */
+  @SuppressWarnings("javadoc")
   @Test
   public void testDefaultView() throws ResourceInitializationException,
           AnalysisEngineProcessException {
@@ -80,6 +81,7 @@
    * some other view without initializing that other view first. This is the behavior that
    * SofaInitializerAnnotator addresses.
    */
+  @SuppressWarnings("javadoc")
   @Test(expected = AnalysisEngineProcessException.class)
   public void testOtherViewAware() throws ResourceInitializationException,
           AnalysisEngineProcessException {
@@ -97,13 +99,16 @@
     AnalysisEngineDescription description = AnalysisEngineFactory.createEngineDescription(
             SofaUnawareAnnotator.class, typeSystemDescription);
     AnalysisEngine engine = AnalysisEngineFactory.createEngine(description, "myView");
+    HideOutput hider = new HideOutput();
     engine.process(jCas);
+    hider.restoreOutput();
   }
 
   /**
    * This test demonstrates that running the viewCreator is doing the right thing (i.e. initializing
    * the view "myView")
    */
+  @SuppressWarnings("javadoc")
   @Test
   public void testSofaInitializer() throws ResourceInitializationException,
           AnalysisEngineProcessException, CASException {
diff --git a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/ExternalResourceFactoryTest.java b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/ExternalResourceFactoryTest.java
index e6af395..4d9232d 100644
--- a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/ExternalResourceFactoryTest.java
+++ b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/ExternalResourceFactoryTest.java
@@ -132,7 +132,7 @@
 
   @Test
   public void testDirectInjectionAutowire() throws Exception {
-    // Create analysis enginge description
+    // Create analysis engine description
     AnalysisEngineDescription desc = createEngineDescription(DummyAE2.class);
 
     // Bind external resources for DummyAE
diff --git a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/testRes/TestExternalResource.java b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/testRes/TestExternalResource.java
index 70ac7d9..cc416be 100644
--- a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/testRes/TestExternalResource.java
+++ b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/testRes/TestExternalResource.java
@@ -34,7 +34,7 @@
   private String value;
 
   public void assertConfiguredOk() {
-    System.out.println(getClass().getSimpleName() + ".assertConfiguredOk()");
+//    System.out.println(getClass().getSimpleName() + ".assertConfiguredOk()");
     // Ensure normal parameters get passed to External Resource
     assertEquals(EXPECTED_VALUE, value);
   }
diff --git a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/testRes/TestSharedResourceObject.java b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/testRes/TestSharedResourceObject.java
index 8a866d6..a93fff8 100644
--- a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/testRes/TestSharedResourceObject.java
+++ b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/factory/testRes/TestSharedResourceObject.java
@@ -37,7 +37,7 @@
   private String value;
 
   public void assertConfiguredOk() {
-    System.out.println(getClass().getSimpleName() + ".assertConfiguredOk()");
+//    System.out.println(getClass().getSimpleName() + ".assertConfiguredOk()");
     // Ensure normal parameters get passed to External Resource
     assertEquals(EXPECTED_VALUE, value);
   }
diff --git a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/util/CasUtilTest.java b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/util/CasUtilTest.java
index d0c7343..1d854a7 100644
--- a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/util/CasUtilTest.java
+++ b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/util/CasUtilTest.java
@@ -139,12 +139,12 @@
       i++;
     }
 
-    // Print what is expected
-    for (FeatureStructure fs : allFS) {
-      System.out.println("Type: " + fs.getType().getName() + "]");
-    }
-    System.out
-            .println("Tokens: [" + toText(select(cas, getType(cas, Token.class.getName()))) + "]");
+//    // Print what is expected
+//    for (FeatureStructure fs : allFS) {
+//      System.out.println("Type: " + fs.getType().getName() + "]");
+//    }
+//    System.out
+//            .println("Tokens: [" + toText(select(cas, getType(cas, Token.class.getName()))) + "]");
 
     // Document Annotation, one sentence and 4 tokens.
     assertEquals(6, allFS.size());
diff --git a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java
index f11210c..73ce768 100644
--- a/uimafit-legacy-support/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java
+++ b/uimafit-legacy-support/src/test/java/org/apache/uima/fit/util/JCasUtilTest.java
@@ -147,9 +147,9 @@
         check(jcas, t, stem1, stem2);
         check(jcas, t, stem1, stem3);
       }
-      System.out.format("Speed up factor %.2f [naive:%d optimized:%d diff:%d]\n",
-              (double) timeNaive / (double) timeOptimized, timeNaive, timeOptimized, timeNaive
-                      - timeOptimized);
+//      System.out.format("Speed up factor %.2f [naive:%d optimized:%d diff:%d]\n",
+//              (double) timeNaive / (double) timeOptimized, timeNaive, timeOptimized, timeNaive
+//                      - timeOptimized);
     }
   }
 
@@ -182,8 +182,8 @@
       JCas jcas = cas.getJCas();
       List<Token> tokens = new ArrayList<Token>(select(jcas, Token.class));
 
-      long timeNaive = 0;
-      long timeOptimized = 0;
+//      long timeNaive = 0;
+//      long timeOptimized = 0;
       for (int j = 0; j < ITERATIONS; j++) {
         Token t1 = tokens.get(rnd.nextInt(tokens.size()));
         Token t2 = tokens.get(rnd.nextInt(tokens.size()));
@@ -191,32 +191,32 @@
         int left = Math.min(t1.getEnd(), t2.getEnd());
         int right = Math.max(t1.getBegin(), t2.getBegin());
 
-        long ti;
+//        long ti;
         List<Sentence> reference;
         if ((t1.getBegin() < t2.getBegin() && t2.getBegin() < t1.getEnd())
                 || (t1.getBegin() < t2.getEnd() && t2.getEnd() < t1.getEnd())
                 || (t2.getBegin() < t1.getBegin() && t1.getBegin() < t2.getEnd())
                 || (t2.getBegin() < t1.getEnd() && t1.getEnd() < t2.getEnd())) {
           // If the boundary annotations overlap, the result must be empty
-          ti = System.currentTimeMillis();
+//          ti = System.currentTimeMillis();
           reference = new ArrayList<Sentence>();
-          timeNaive += System.currentTimeMillis() - ti;
+//          timeNaive += System.currentTimeMillis() - ti;
         } else {
-          ti = System.currentTimeMillis();
+//          ti = System.currentTimeMillis();
           reference = selectCovered(jcas, Sentence.class, left, right);
-          timeNaive += System.currentTimeMillis() - ti;
+//          timeNaive += System.currentTimeMillis() - ti;
         }
 
-        ti = System.currentTimeMillis();
+//        ti = System.currentTimeMillis();
         List<Sentence> actual = selectBetween(Sentence.class, t1, t2);
-        timeOptimized += System.currentTimeMillis() - ti;
+//        timeOptimized += System.currentTimeMillis() - ti;
 
         assertEquals("Naive: Searching between " + t1 + " and " + t2, reference, actual);
       }
 
-      System.out.format("Speed up factor %.2f [naive:%d optimized:%d diff:%d]\n",
-              (double) timeNaive / (double) timeOptimized, timeNaive, timeOptimized, timeNaive
-                      - timeOptimized);
+//      System.out.format("Speed up factor %.2f [naive:%d optimized:%d diff:%d]\n",
+//              (double) timeNaive / (double) timeOptimized, timeNaive, timeOptimized, timeNaive
+//                      - timeOptimized);
     }
   }
 
@@ -328,10 +328,10 @@
     }
 
     // Print what is expected
-    for (FeatureStructure fs : allFS) {
-      System.out.println("Type: " + fs.getType().getName() + "]");
-    }
-    System.out.println("Tokens: [" + toText(select(jCas, Token.class)) + "]");
+//    for (FeatureStructure fs : allFS) {
+//      System.out.println("Type: " + fs.getType().getName() + "]");
+//    }
+//    System.out.println("Tokens: [" + toText(select(jCas, Token.class)) + "]");
 
     // Document Annotation, one sentence and 4 tokens.
     assertEquals(6, allFS.size());
@@ -365,10 +365,10 @@
     }
 
     // Print what is expected
-    for (FeatureStructure fs : allFS) {
-      System.out.println("Type: " + fs.getType().getName() + "]");
-    }
-    System.out.println("Tokens: [" + toText(select(jCas, Token.class)) + "]");
+//    for (FeatureStructure fs : allFS) {
+//      System.out.println("Type: " + fs.getType().getName() + "]");
+//    }
+//    System.out.println("Tokens: [" + toText(select(jCas, Token.class)) + "]");
 
     // Document Annotation, one sentence and 4 tokens.
     assertEquals(6, allFS.size());