Coverage Report - org.codehaus.plexus.velocity.DefaultVelocityComponent
 
Classes in this File Line Coverage Branch Coverage Complexity
DefaultVelocityComponent
48 %
23/47
26 %
5/19
4,833
 
 1  
 package org.codehaus.plexus.velocity;
 2  
 
 3  
 /*
 4  
  * Copyright 2001-2016 Codehaus Foundation.
 5  
  *
 6  
  * Licensed under the Apache License, Version 2.0 (the "License");
 7  
  * you may not use this file except in compliance with the License.
 8  
  * You may obtain a copy of the License at
 9  
  *
 10  
  *      http://www.apache.org/licenses/LICENSE-2.0
 11  
  *
 12  
  * Unless required by applicable law or agreed to in writing, software
 13  
  * distributed under the License is distributed on an "AS IS" BASIS,
 14  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 15  
  * See the License for the specific language governing permissions and
 16  
  * limitations under the License.
 17  
  */
 18  
 
 19  
 import java.util.Enumeration;
 20  
 import java.util.Properties;
 21  
 
 22  
 import org.apache.velocity.app.VelocityEngine;
 23  
 import org.apache.velocity.runtime.RuntimeServices;
 24  
 import org.apache.velocity.runtime.RuntimeConstants;
 25  
 import org.apache.velocity.runtime.log.LogChute;
 26  
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
 27  
 import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
 28  
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 29  
 
 30  
 /**
 31  
  * A simple velocity component implementation.
 32  
  * <p/>
 33  
  * A typical configuration will look like this:
 34  
  * <pre>
 35  
  *      <configuration>
 36  
  *        <properties>
 37  
  *          <property>
 38  
  *            <name>resource.loader</name>
 39  
  *            <value>classpath</value>
 40  
  *          </property>
 41  
  *          <property>
 42  
  *            <name>classpath.resource.loader.class</name>
 43  
  *            <value>org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader</value>
 44  
  *          </property>
 45  
  *        </properties>
 46  
  *      </configuration>
 47  
  * </pre>
 48  
  */
 49  1
 public class DefaultVelocityComponent
 50  
     extends AbstractLogEnabled
 51  
     implements VelocityComponent, Initializable, LogChute
 52  
 {
 53  
     private VelocityEngine engine;
 54  
 
 55  
     private Properties properties;
 56  
 
 57  
     // ----------------------------------------------------------------------
 58  
     //
 59  
     // ----------------------------------------------------------------------
 60  
 
 61  
     public void initialize()
 62  
         throws InitializationException
 63  
     {
 64  1
         engine = new VelocityEngine();
 65  
 
 66  
         // avoid "unable to find resource 'VM_global_library.vm' in any resource loader."
 67  1
         engine.setProperty( RuntimeConstants.VM_LIBRARY, "" );
 68  
 
 69  1
         engine.setProperty( RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, this );
 70  
 
 71  1
         if ( properties != null )
 72  
         {
 73  1
             for ( Enumeration<?> e = properties.propertyNames(); e.hasMoreElements(); )
 74  
             {
 75  3
                 String key = e.nextElement().toString();
 76  
 
 77  3
                 String value = properties.getProperty( key );
 78  
 
 79  3
                 engine.setProperty( key, value );
 80  
 
 81  3
                 getLogger().debug( "Setting property: " + key + " => '" + value + "'." );
 82  3
             }
 83  
         }
 84  
 
 85  
         try
 86  
         {
 87  1
             engine.init();
 88  
         }
 89  0
         catch ( Exception e )
 90  
         {
 91  0
             throw new InitializationException( "Cannot start the Velocity engine", e );
 92  1
         }
 93  1
     }
 94  
 
 95  
     // ----------------------------------------------------------------------
 96  
     //
 97  
     // ----------------------------------------------------------------------
 98  
 
 99  
     public VelocityEngine getEngine()
 100  
     {
 101  2
         return engine;
 102  
     }
 103  
     // ----------------------------------------------------------------------
 104  
     //
 105  
     // ----------------------------------------------------------------------
 106  
 
 107  
     private RuntimeServices runtimeServices;
 108  
 
 109  
     public void init( RuntimeServices runtimeServices )
 110  
     {
 111  1
         this.runtimeServices = runtimeServices;
 112  1
     }
 113  
 
 114  
     public void log(int level, String message)
 115  
     {
 116  25
         switch ( level )
 117  
         {
 118  
             case LogChute.WARN_ID:
 119  0
                 getLogger().warn( message );
 120  0
                 break;
 121  
             case LogChute.INFO_ID:
 122  0
                 getLogger().info( message );
 123  0
                 break;
 124  
             case LogChute.DEBUG_ID:
 125  
             case LogChute.TRACE_ID:
 126  25
                 getLogger().debug( message );
 127  25
                 break;
 128  
             case LogChute.ERROR_ID:
 129  0
                 getLogger().error( message );
 130  0
                 break;
 131  
             default:
 132  0
                 getLogger().debug( message );
 133  
                 break;
 134  
         }
 135  25
     }
 136  
 
 137  
     public void log(int level, String message, Throwable t)
 138  
     {
 139  0
         switch ( level )
 140  
         {
 141  
             case LogChute.WARN_ID:
 142  0
                 getLogger().warn( message, t );
 143  0
                 break;
 144  
             case LogChute.INFO_ID:
 145  0
                 getLogger().info( message, t );
 146  0
                 break;
 147  
             case LogChute.DEBUG_ID:
 148  
             case LogChute.TRACE_ID:
 149  0
                 getLogger().debug( message, t );
 150  0
                 break;
 151  
             case LogChute.ERROR_ID:
 152  0
                 getLogger().error( message, t );
 153  0
                 break;
 154  
             default:
 155  0
                 getLogger().debug( message, t );
 156  
                 break;
 157  
         }
 158  0
     }
 159  
 
 160  
     public boolean isLevelEnabled( int level )
 161  
     {
 162  3
          switch ( level )
 163  
         {
 164  
             case LogChute.WARN_ID:
 165  0
                 return getLogger().isWarnEnabled();
 166  
             case LogChute.INFO_ID:
 167  0
                 return getLogger().isInfoEnabled();
 168  
             case LogChute.DEBUG_ID:
 169  
             case LogChute.TRACE_ID:
 170  3
                 return getLogger().isDebugEnabled();
 171  
             case LogChute.ERROR_ID:
 172  0
                 return getLogger().isErrorEnabled();
 173  
             default:
 174  0
                 return getLogger().isDebugEnabled();
 175  
         }
 176  
     }
 177  
 }