Coverage report

  %line %branch
org.apache.torque.avalon.TorqueComponent
87% 
96% 

 1  
 package org.apache.torque.avalon;
 2  
 
 3  
 /*
 4  
  * Licensed to the Apache Software Foundation (ASF) under one
 5  
  * or more contributor license agreements.  See the NOTICE file
 6  
  * distributed with this work for additional information
 7  
  * regarding copyright ownership.  The ASF licenses this file
 8  
  * to you under the Apache License, Version 2.0 (the
 9  
  * "License"); you may not use this file except in compliance
 10  
  * with the License.  You may obtain a copy of the License at
 11  
  *
 12  
  *   http://www.apache.org/licenses/LICENSE-2.0
 13  
  *
 14  
  * Unless required by applicable law or agreed to in writing,
 15  
  * software distributed under the License is distributed on an
 16  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 17  
  * KIND, either express or implied.  See the License for the
 18  
  * specific language governing permissions and limitations
 19  
  * under the License.
 20  
  */
 21  
 
 22  
 import java.io.File;
 23  
 
 24  
 import org.apache.avalon.framework.activity.Initializable;
 25  
 import org.apache.avalon.framework.activity.Startable;
 26  
 import org.apache.avalon.framework.configuration.Configurable;
 27  
 import org.apache.avalon.framework.configuration.Configuration;
 28  
 import org.apache.avalon.framework.configuration.ConfigurationException;
 29  
 import org.apache.avalon.framework.context.Context;
 30  
 import org.apache.avalon.framework.context.ContextException;
 31  
 import org.apache.avalon.framework.context.Contextualizable;
 32  
 import org.apache.avalon.framework.logger.LogEnabled;
 33  
 import org.apache.avalon.framework.logger.Logger;
 34  
 import org.apache.avalon.framework.thread.ThreadSafe;
 35  
 import org.apache.commons.lang.StringUtils;
 36  
 import org.apache.torque.TorqueInstance;
 37  
 
 38  
 /**
 39  
  * Avalon component for Torque.
 40  
  *
 41  
  * @author <a href="mailto:mpoeschl@marmot.at">Martin Poeschl</a>
 42  
  * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
 43  
  * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
 44  
  * @version $Id: TorqueComponent.java 476550 2006-11-18 16:08:37Z tfischer $
 45  
  */
 46  
 public class TorqueComponent
 47  
         extends TorqueInstance
 48  
         implements Torque,
 49  
                    LogEnabled,
 50  
                    Configurable,
 51  
                    Initializable,
 52  
                    Contextualizable,
 53  
                    Startable,
 54  
                    ThreadSafe
 55  
 {
 56  
     /** The Avalon Application Root */
 57  16
     private String appRoot = null;
 58  
 
 59  
     /** The Avalon Logger */
 60  16
     private Logger logger = null;
 61  
 
 62  
     /** The configuration file name. */
 63  16
     private String configFile = null;
 64  
 
 65  
 
 66  
     /**
 67  
      * Creates a new instance.  Default constructor used by Avalon.
 68  
      */
 69  
     public TorqueComponent()
 70  
     {
 71  16
         super();
 72  
 
 73  
         // Provide the singleton instance to the static accessor
 74  16
         org.apache.torque.Torque.setInstance(this);
 75  16
     }
 76  
 
 77  
     /*
 78  
      * ========================================================================
 79  
      *
 80  
      * Avalon Component Interfaces
 81  
      *
 82  
      * ========================================================================
 83  
      */
 84  
 
 85  
     /**
 86  
      * @see org.apache.avalon.framework.logger.LogEnabled#enableLogging(org.apache.avalon.framework.logger.Logger)
 87  
      */
 88  
     public void enableLogging(Logger aLogger)
 89  
     {
 90  16
         this.logger = aLogger;
 91  16
     }
 92  
 
 93  
     /**
 94  
      * Convenience method to provide the Avalon logger the way AbstractLogEnabled does.
 95  
      */
 96  
     public Logger getLogger()
 97  
     {
 98  112
         return logger;
 99  
     }
 100  
 
 101  
     /**
 102  
      * @see
 103  
      * org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
 104  
      */
 105  
     public void configure(Configuration configuration)
 106  
             throws ConfigurationException
 107  
     {
 108  16
         getLogger().debug("configure(" + configuration + ")");
 109  
 
 110  16
         String configurationFile
 111  
                 = configuration.getChild("configfile").getValue();
 112  
 
 113  16
         if (StringUtils.isNotEmpty(appRoot))
 114  
         {
 115  16
             if (configurationFile.startsWith("/"))
 116  
             {
 117  16
                 configurationFile = configurationFile.substring(1);
 118  16
                 getLogger().debug("Config File changes to "
 119  
                         + configurationFile);
 120  
             }
 121  
 
 122  16
             StringBuffer sb = new StringBuffer();
 123  16
             sb.append(appRoot);
 124  16
             sb.append(File.separator);
 125  16
             sb.append(configurationFile);
 126  
 
 127  16
             configurationFile = sb.toString();
 128  
         }
 129  
 
 130  16
         getLogger().debug("Config File is " + configurationFile);
 131  
 
 132  16
         this.configFile = configurationFile;
 133  16
     }
 134  
 
 135  
     /**
 136  
      * @see org.apache.avalon.framework.context.Contextualizable
 137  
      */
 138  
     public void contextualize(Context context)
 139  
             throws ContextException
 140  
     {
 141  
         // check context Merlin and YAAFI style
 142  
         try
 143  
         {
 144  16
             appRoot = ((File) context.get("urn:avalon:home")).getAbsolutePath();
 145  
         }
 146  0
         catch (ContextException ce)
 147  
         {
 148  0
             appRoot = null;
 149  16
         }
 150  
 
 151  16
         if (appRoot == null)
 152  
         {
 153  
             // check context old ECM style, let exception flow if not available
 154  0
             appRoot = (String) context.get("componentAppRoot");
 155  
         }
 156  
 
 157  16
         if (StringUtils.isNotEmpty(appRoot))
 158  
         {
 159  16
             if (appRoot.endsWith("/"))
 160  
             {
 161  0
                 appRoot = appRoot.substring(0, appRoot.length() - 1);
 162  0
                 getLogger().debug("Application Root changed to " + appRoot);
 163  
             }
 164  
         }
 165  16
     }
 166  
 
 167  
     /**
 168  
      * @see org.apache.avalon.framework.activity.Initializable#initialize()
 169  
      */
 170  
     public void initialize()
 171  
             throws Exception
 172  
     {
 173  16
         getLogger().debug("initialize()");
 174  16
         init(configFile);
 175  16
     }
 176  
 
 177  
     /**
 178  
      * @see org.apache.avalon.framework.activity.Startable#start()
 179  
      */
 180  
     public void start()
 181  
     {
 182  16
         getLogger().debug("start()");
 183  16
     }
 184  
 
 185  
     /**
 186  
      * @see org.apache.avalon.framework.activity.Startable#stop()
 187  
      */
 188  
     public void stop()
 189  
     {
 190  16
         getLogger().debug("stop()");
 191  
         try
 192  
         {
 193  16
             shutdown();
 194  
         }
 195  16
         catch (Exception e)
 196  
         {
 197  16
             getLogger().error("Error while stopping Torque", e);
 198  0
         }
 199  16
     }
 200  
 }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.