Clover coverage report - Cactus 1.5 for J2EE API 1.2
Coverage timestamp: Wed Feb 18 2004 09:04:33 EST
file stats: LOC: 166   Methods: 4
NCLOC: 63   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
DefaultEarArchive.java 62.5% 88.9% 75% 80%
coverage coverage
 1   
 /*
 2   
  * ====================================================================
 3   
  *
 4   
  * The Apache Software License, Version 1.1
 5   
  *
 6   
  * Copyright (c) 2003 The Apache Software Foundation.  All rights
 7   
  * reserved.
 8   
  *
 9   
  * Redistribution and use in source and binary forms, with or without
 10   
  * modification, are permitted provided that the following conditions
 11   
  * are met:
 12   
  *
 13   
  * 1. Redistributions of source code must retain the above copyright
 14   
  *    notice, this list of conditions and the following disclaimer.
 15   
  *
 16   
  * 2. Redistributions in binary form must reproduce the above copyright
 17   
  *    notice, this list of conditions and the following disclaimer in
 18   
  *    the documentation and/or other materials provided with the
 19   
  *    distribution.
 20   
  *
 21   
  * 3. The end-user documentation included with the redistribution, if
 22   
  *    any, must include the following acknowlegement:
 23   
  *       "This product includes software developed by the
 24   
  *        Apache Software Foundation (http://www.apache.org/)."
 25   
  *    Alternately, this acknowlegement may appear in the software itself,
 26   
  *    if and wherever such third-party acknowlegements normally appear.
 27   
  *
 28   
  * 4. The names "The Jakarta Project", "Cactus" and "Apache Software
 29   
  *    Foundation" must not be used to endorse or promote products
 30   
  *    derived from this software without prior written permission. For
 31   
  *    written permission, please contact apache@apache.org.
 32   
  *
 33   
  * 5. Products derived from this software may not be called "Apache"
 34   
  *    nor may "Apache" appear in their names without prior written
 35   
  *    permission of the Apache Group.
 36   
  *
 37   
  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 38   
  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 39   
  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 40   
  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 41   
  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 42   
  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 43   
  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 44   
  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 45   
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 46   
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 47   
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 48   
  * SUCH DAMAGE.
 49   
  * ====================================================================
 50   
  *
 51   
  * This software consists of voluntary contributions made by many
 52   
  * individuals on behalf of the Apache Software Foundation.  For more
 53   
  * information on the Apache Software Foundation, please see
 54   
  * <http://www.apache.org/>.
 55   
  *
 56   
  */
 57   
 package org.apache.cactus.integration.ant.deployment;
 58   
 
 59   
 import java.io.File;
 60   
 import java.io.IOException;
 61   
 import java.io.InputStream;
 62   
 
 63   
 import javax.xml.parsers.ParserConfigurationException;
 64   
 
 65   
 import org.xml.sax.SAXException;
 66   
 
 67   
 /**
 68   
  * Encapsulates access to an EAR.
 69   
  * 
 70   
  * @author <a href="mailto:cmlenz@apache.org">Christopher Lenz</a>
 71   
  * @author <a href="mailto:vmassol@apache.org">Vincent Massol</a>
 72   
  *
 73   
  * @since Cactus 1.5
 74   
  * @version $Id: DefaultEarArchive.java,v 1.1.2.1 2003/10/25 17:22:05 vmassol Exp $
 75   
  */
 76   
 public class DefaultEarArchive extends DefaultJarArchive implements EarArchive
 77   
 {
 78   
     // Instance Variables ------------------------------------------------------
 79   
 
 80   
     /**
 81   
      * The parsed deployment descriptor.
 82   
      */
 83   
     private ApplicationXml applicationXml;
 84   
 
 85   
     // Constructors ------------------------------------------------------------
 86   
     
 87   
     /**
 88   
      * Constructor.
 89   
      * 
 90   
      * @param theFile The enterprise application archive
 91   
      * @throws IOException If there was a problem reading the EAR
 92   
      */
 93  4
     public DefaultEarArchive(File theFile)
 94   
         throws IOException
 95   
     {
 96  4
         super(theFile);
 97   
     }
 98   
 
 99   
     /**
 100   
      * Constructor.
 101   
      * 
 102   
      * @param theInputStream The input stream for the enterprise application
 103   
      *        archive
 104   
      * @throws IOException If there was a problem reading the EAR
 105   
      */
 106  0
     public DefaultEarArchive(InputStream theInputStream)
 107   
         throws IOException
 108   
     {
 109  0
         super(theInputStream);
 110   
     }
 111   
 
 112   
     // Public Methods ----------------------------------------------------------
 113   
 
 114   
     /**
 115   
      * @see EarArchive#getApplicationXml()
 116   
      */
 117  6
     public final ApplicationXml getApplicationXml()
 118   
         throws IOException, SAXException, ParserConfigurationException
 119   
     {
 120  6
         if (this.applicationXml == null)
 121   
         {
 122  4
             InputStream in = null;
 123  4
             try
 124   
             {
 125  4
                 in = getResource("META-INF/application.xml");
 126  4
                 this.applicationXml =
 127   
                     ApplicationXmlIo.parseApplicationXml(in, null);
 128   
             }
 129   
             finally
 130   
             {
 131  4
                 if (in != null)
 132   
                 {
 133  4
                     in.close();
 134   
                 }
 135   
             }
 136   
         }
 137  6
         return this.applicationXml;
 138   
     }
 139   
 
 140   
     /**
 141   
      * @see EarArchive#getWebModule(String)
 142   
      */
 143  5
     public final WarArchive getWebModule(String theUri)
 144   
         throws IOException
 145   
     {
 146  5
         InputStream war = null;
 147  5
         try
 148   
         {
 149  5
             war = getResource(theUri);
 150  5
             if (war != null)
 151   
             {
 152  5
                 return new DefaultWarArchive(war);
 153   
             }
 154   
         }
 155   
         finally
 156   
         {
 157  5
             if (war != null)
 158   
             {
 159  5
                 war.close();
 160   
             }
 161   
         }
 162  0
         return null;
 163   
     }
 164   
 
 165   
 }
 166