Coverage report

  %line %branch
org.apache.torque.avalon.TorqueComponent
80% 
100% 

 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  
 import java.util.Iterator;
 24  
 import java.util.Map;
 25  
 
 26  
 import org.apache.avalon.framework.activity.Disposable;
 27  
 import org.apache.avalon.framework.activity.Initializable;
 28  
 import org.apache.avalon.framework.configuration.Configurable;
 29  
 import org.apache.avalon.framework.configuration.Configuration;
 30  
 import org.apache.avalon.framework.configuration.ConfigurationException;
 31  
 import org.apache.avalon.framework.context.Context;
 32  
 import org.apache.avalon.framework.context.ContextException;
 33  
 import org.apache.avalon.framework.context.Contextualizable;
 34  
 import org.apache.avalon.framework.logger.LogEnabled;
 35  
 import org.apache.avalon.framework.logger.Logger;
 36  
 import org.apache.avalon.framework.thread.ThreadSafe;
 37  
 import org.apache.commons.lang.StringUtils;
 38  
 import org.apache.torque.TorqueInstance;
 39  
 
 40  
 /**
 41  
  * Avalon component for Torque.
 42  
  *
 43  
  * @author <a href="mailto:mpoeschl@marmot.at">Martin Poeschl</a>
 44  
  * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
 45  
  * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
 46  
  * @version $Id: TorqueComponent.java 529759 2007-04-17 20:52:01Z tv $
 47  
  */
 48  6
 public class TorqueComponent
 49  
         extends TorqueInstance
 50  
         implements Torque,
 51  
                    LogEnabled,
 52  
                    Configurable,
 53  
                    Initializable,
 54  
                    Contextualizable,
 55  
                    Disposable,
 56  
                    ThreadSafe
 57  
 {
 58  
     /** The Avalon Application Root */
 59  6
     private String appRoot = null;
 60  
 
 61  
     /** The Avalon Logger */
 62  6
     private Logger logger = null;
 63  
 
 64  
     /** The configuration file name. */
 65  6
     private String configFile = null;
 66  
 
 67  
     /*
 68  
      * ========================================================================
 69  
      *
 70  
      * Avalon Component Interfaces
 71  
      *
 72  
      * ========================================================================
 73  
      */
 74  
 
 75  
     /**
 76  
      * @see org.apache.avalon.framework.logger.LogEnabled#enableLogging(org.apache.avalon.framework.logger.Logger)
 77  
      */
 78  
     public void enableLogging(Logger aLogger)
 79  
     {
 80  6
         this.logger = aLogger;
 81  6
     }
 82  
 
 83  
     /**
 84  
      * Convenience method to provide the Avalon logger the way AbstractLogEnabled does.
 85  
      */
 86  
     public Logger getLogger()
 87  
     {
 88  30
         return logger;
 89  
     }
 90  
 
 91  
     /**
 92  
      * @see
 93  
      * org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
 94  
      */
 95  
     public void configure(Configuration configuration)
 96  
             throws ConfigurationException
 97  
     {
 98  6
         getLogger().debug("configure(" + configuration + ")");
 99  
 
 100  6
         String configurationFile
 101  
                 = configuration.getChild("configfile").getValue();
 102  
 
 103  6
         if (StringUtils.isNotEmpty(appRoot))
 104  
         {
 105  6
             if (configurationFile.startsWith("/"))
 106  
             {
 107  6
                 configurationFile = configurationFile.substring(1);
 108  6
                 getLogger().debug("Config File changes to "
 109  
                         + configurationFile);
 110  
             }
 111  
 
 112  6
             StringBuffer sb = new StringBuffer();
 113  6
             sb.append(appRoot);
 114  6
             sb.append(File.separator);
 115  6
             sb.append(configurationFile);
 116  
 
 117  6
             configurationFile = sb.toString();
 118  
         }
 119  
 
 120  6
         getLogger().debug("Config File is " + configurationFile);
 121  
 
 122  6
         this.configFile = configurationFile;
 123  6
     }
 124  
 
 125  
     /**
 126  
      * @see org.apache.avalon.framework.context.Contextualizable
 127  
      */
 128  
     public void contextualize(Context context)
 129  
             throws ContextException
 130  
     {
 131  
         // check context Merlin and YAAFI style
 132  
         try
 133  
         {
 134  6
             appRoot = ((File) context.get("urn:avalon:home")).getAbsolutePath();
 135  
         }
 136  0
         catch (ContextException ce)
 137  
         {
 138  0
             appRoot = null;
 139  6
         }
 140  
 
 141  6
         if (appRoot == null)
 142  
         {
 143  
             // check context old ECM style, let exception flow if not available
 144  0
             appRoot = (String) context.get("componentAppRoot");
 145  
         }
 146  
 
 147  6
         if (StringUtils.isNotEmpty(appRoot))
 148  
         {
 149  6
             if (appRoot.endsWith("/"))
 150  
             {
 151  0
                 appRoot = appRoot.substring(0, appRoot.length() - 1);
 152  0
                 getLogger().debug("Application Root changed to " + appRoot);
 153  
             }
 154  
         }
 155  6
     }
 156  
 
 157  
     /**
 158  
      * @see org.apache.avalon.framework.activity.Initializable#initialize()
 159  
      */
 160  
     public void initialize()
 161  
             throws Exception
 162  
     {
 163  6
         getLogger().debug("initialize()");
 164  
         
 165  6
         TorqueInstance instance = org.apache.torque.Torque.getInstance();
 166  
         
 167  6
         Map mapBuilders = instance.getMapBuilders();
 168  
         
 169  6
         if (mapBuilders != null)
 170  
         {    
 171  
             // Copy the registered MapBuilders and take care that they will be built again
 172  6
             for (Iterator  i = mapBuilders.keySet().iterator(); i.hasNext();)
 173  
             {
 174  0
                 String className = (String)i.next();
 175  0
                 registerMapBuilder(className);
 176  
             }
 177  
         }
 178  
         
 179  
         // Provide the singleton instance to the static accessor
 180  6
         org.apache.torque.Torque.setInstance(this);
 181  
 
 182  6
         init(configFile);
 183  6
     }
 184  
 
 185  
     /**
 186  
      * @see org.apache.avalon.framework.activity.Disposable#dispose()
 187  
      */
 188  
     public void dispose()
 189  
     {
 190  6
         getLogger().debug("dispose()");
 191  
         try
 192  
         {
 193  6
             shutdown();
 194  
         }
 195  0
         catch (Exception e)
 196  
         {
 197  0
             getLogger().error("Error while stopping Torque", e);
 198  6
         }
 199  6
     }
 200  
 }

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