Coverage Report - net.sourceforge.cobertura.ant.AntUtil
 
Classes in this File Line Coverage Branch Coverage Complexity
AntUtil
88%
7/8
50%
1/2
2
 
 1  
 /*
 2  
  * The Apache Software License, Version 1.1
 3  
  *
 4  
  * Copyright (C) 2006 Mark Doliner
 5  
  * Copyright (C) 2006 John Lewis
 6  
  *
 7  
  * Redistribution and use in source and binary forms, with or without
 8  
  * modification, are permitted provided that the following conditions
 9  
  * are met:
 10  
  *
 11  
  * 1. Redistributions of source code must retain the above copyright
 12  
  *    notice, this list of conditions and the following disclaimer.
 13  
  *
 14  
  * 2. Redistributions in binary form must reproduce the above copyright
 15  
  *    notice, this list of conditions and the following disclaimer in
 16  
  *    the documentation and/or other materials provided with the
 17  
  *    distribution.
 18  
  *
 19  
  * 3. The end-user documentation included with the redistribution, if
 20  
  *    any, must include the following acknowlegement:
 21  
  *       "This product includes software developed by the
 22  
  *        Apache Software Foundation (http://www.apache.org/)."
 23  
  *    Alternately, this acknowlegement may appear in the software itself,
 24  
  *    if and wherever such third-party acknowlegements normally appear.
 25  
  *
 26  
  * 4. The names "Ant" and "Apache Software
 27  
  *    Foundation" must not be used to endorse or promote products derived
 28  
  *    from this software without prior written permission. For written
 29  
  *    permission, please contact apache@apache.org.
 30  
  *
 31  
  * 5. Products derived from this software may not be called "Apache"
 32  
  *    nor may "Apache" appear in their names without prior written
 33  
  *    permission of the Apache Group.
 34  
  *
 35  
  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 36  
  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 37  
  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 38  
  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 39  
  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 40  
  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 41  
  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 42  
  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 43  
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 44  
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 45  
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 46  
  * SUCH DAMAGE.
 47  
  * ====================================================================
 48  
  *
 49  
  * This software consists of voluntary contributions made by many
 50  
  * individuals on behalf of the Apache Software Foundation.  For more
 51  
  * information on the Apache Software Foundation, please see
 52  
  * <http://www.apache.org/>.
 53  
  */
 54  
 
 55  
 package net.sourceforge.cobertura.ant;
 56  
 
 57  
 import org.apache.tools.ant.taskdefs.Java;
 58  
 import org.apache.tools.ant.types.Environment.Variable;
 59  
 
 60  0
 abstract class AntUtil
 61  
 {
 62  
 
 63  
         /**
 64  
          * Used to transfer the net.sourceforge.cobertura.datafile property to a JVM
 65  
          * that is about to be forked.
 66  
          * 
 67  
          * This is confusing, but it's required by our functional test.
 68  
          * What happens is, we have a JUnit test that runs ant to
 69  
          * instrument some classes.  When the instrumentation is running,
 70  
          * we want to get the coverage info that is created by exercising
 71  
          * our instrumentation classes.
 72  
          *
 73  
          * So we pass in two different coverage files:
 74  
          * 1. The coverage data file command line parameter.  This tells
 75  
          *    the instrument task where to write the new coverage data.
 76  
          * 2. The coverage data system property.  This tells the
 77  
          *    instrumentation inside the instrumented classes where to
 78  
          *    keep track of the line hit counts, etc.
 79  
          *
 80  
          * @param task The Java task that will do the forking.
 81  
          */
 82  
         static void transferCoberturaDataFileProperty(Java task)
 83  
         {
 84  16
                 String coberturaProperty = System.getProperty("net.sourceforge.cobertura.datafile");
 85  16
                 if (coberturaProperty != null)
 86  
                 {
 87  16
                         Variable sysproperty = new Variable();
 88  16
                         sysproperty.setKey("net.sourceforge.cobertura.datafile");
 89  16
                         sysproperty.setValue(coberturaProperty);
 90  16
                         task.addSysproperty(sysproperty);
 91  
                 }
 92  16
         }
 93  
 
 94  
 }