title: Cannot initialize Velocity engine in an apt processor class
body: <p>I am trying to use Velocity in an apt annotation processing class (with Maven). On initializing Velocity</p>
  
  <pre><code>Properties vProps = new Properties();
  vProps.load(this.getClass().getResourceAsStream("velocity.properties"));
  mEngine = new VelocityEngine(vProps);
  </code></pre>
  
  <p>with the following <em>velocity.properties</em></p>
  
  <pre><code>runtime.log.logsystem.class=org.apache.velocity.runtime.log.NullLogChute
  
  resource.loader=class
  class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
  class.resource.loader.path=.
  </code></pre>
  
  <p>Here is the apt debug trace</p>
  
  <pre><code>[INFO] Processing 35 source files
  [DEBUG] Invoking apt with arguments:
  [DEBUG]   -classpath
  [DEBUG]   D:\personal\depot\maven2\com\mycompany\portal\portal-annotations\1.0\portal-annotations-1.0.jar;D:\personal\depot\maven2\org\apache\velocity\velocity\1.7\velocity-1.7.jar;D:\personal\depot\maven2\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;D:\personal\depot\maven2\commons-lang\commons-lang\2.4\commons-lang-2.4.jar;D:\personal\depot\maven2\org\codehaus\plexus\plexus-utils\1.4.6\plexus-utils-1.4.6.jar;D:\personal\depot\maven2\org\codehaus\plexus\plexus-compiler-api\1.5.2\plexus-compiler-api-1.5.2.jar;D:\personal\depot\maven2\asm\asm\3.2\asm-3.2.jar;D:\personal\depot\maven2\asm\asm-commons\3.2\asm-commons-3.2.jar;D:\personal\depot\maven2\asm\asm-tree\3.2\asm-tree-3.2.jar;D:\personal\workspaces\portal-pm\emc-disk-arrays\target\classes;D:\personal\depot\maven2\com\mycompany\library\wbem-client\1.0\wbem-client-1.0.jar;D:\personal\app\java\bmc_jdk1.5.0_10\jre\..\lib\tools.jar
  [DEBUG]   -sourcepath
  [DEBUG]   D:\personal\workspaces\portal-pm\emc-disk-arrays\src\main\java
  [DEBUG]   -d
  [DEBUG]   D:\personal\workspaces\portal-pm\emc-disk-arrays\target\generated-resources\apt
  [DEBUG]   -nowarn
  [DEBUG]   -encoding
  [DEBUG]   ISO-8859-1
  [DEBUG]   -verbose
  [DEBUG]   -s
  [DEBUG]   D:\personal\workspaces\portal-pm\emc-disk-arrays\target\generated-sources\apt
  [DEBUG]   -nocompile
  [DEBUG]   -factory
  [DEBUG]   com.mycompany.portal.annotation.processing.MyAnnotationProcessorFactory
  </code></pre>
  
  <p>I have got the following error</p>
  
  <pre><code>[WARNING] Problem encountered during annotation processing; 
  [WARNING] see stacktrace below for more information.
  [WARNING] org.apache.velocity.exception.VelocityException: Error initializing log: Failed to initialize an instance of org.apache.velocity.runtime.log.NullLogChute with the current runtime configuration.
  [WARNING]   at org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:875)
  [WARNING]   at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:262)
  [WARNING]   at org.apache.velocity.app.VelocityEngine.init(VelocityEngine.java:93)
  [WARNING]   at com.mycompany.portal.annotation.template.engine.Engine.&lt;init&gt;(Engine.java:26)
  [WARNING]   at com.mycompany.portal.annotation.processing.MyAnnotationProcessor.createGeneratedFile(MyAnnotationProcessor.java:106)
  [WARNING]   at com.mycompany.portal.annotation.processing.MyAnnotationProcessor.createGeneratedContent(MyAnnotationProcessor.java:95)
  [WARNING]   at com.mycompany.portal.annotation.processing.MyAnnotationProcessor.process(MyAnnotationProcessor.java:75)
  [WARNING]   at com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationProcessor.process(AnnotationProcessors.java:60)
  [WARNING]   at com.sun.tools.apt.comp.Apt.main(Unknown Source)
  [WARNING]   at com.sun.tools.apt.main.JavaCompiler.compile(Unknown Source)
  [WARNING]   at com.sun.tools.apt.main.Main.compile(Unknown Source)
  [WARNING]   at com.sun.tools.apt.main.Main.compile(Unknown Source)
  [WARNING]   at com.sun.tools.apt.Main.processing(Unknown Source)
  [WARNING]   at com.sun.tools.apt.Main.process(Unknown Source)
  [WARNING]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  [WARNING]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  [WARNING]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  [WARNING]   at java.lang.reflect.Method.invoke(Method.java:585)
  [WARNING]   at org.codehaus.mojo.apt.AptUtils.invoke(AptUtils.java:114)
  [WARNING]   at org.codehaus.mojo.apt.AbstractAptMojo.executeApt(AbstractAptMojo.java:389)
  [WARNING]   at org.codehaus.mojo.apt.AbstractAptMojo.executeImpl(AbstractAptMojo.java:263)
  [WARNING]   at org.codehaus.mojo.apt.AbstractAptMojo.execute(AbstractAptMojo.java:240)
  [WARNING]   at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
  [WARNING]   at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
  [WARNING]   at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
  [WARNING]   at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
  [WARNING]   at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
  [WARNING]   at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
  [WARNING]   at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
  [WARNING]   at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
  [WARNING]   at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
  [WARNING]   at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
  [WARNING]   at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
  [WARNING]   at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
  [WARNING]   at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
  [WARNING]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  [WARNING]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  [WARNING]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  [WARNING]   at java.lang.reflect.Method.invoke(Method.java:585)
  [WARNING]   at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
  [WARNING]   at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
  [WARNING]   at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
  [WARNING]   at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
  [WARNING] Caused by: org.apache.velocity.exception.VelocityException: Failed to initialize an instance of org.apache.velocity.runtime.log.NullLogChute with the current runtime configuration.
  [WARNING]   at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:220)
  [WARNING]   at org.apache.velocity.runtime.log.LogManager.updateLog(LogManager.java:269)
  [WARNING]   at org.apache.velocity.runtime.RuntimeInstance.initializeLog(RuntimeInstance.java:871)
  [WARNING]   ... 42 more
  [WARNING] Caused by: org.apache.velocity.exception.VelocityException: The specified logger class org.apache.velocity.runtime.log.NullLogChute does not implement the org.apache.velocity.runtime.log.LogChute interface.
  [WARNING]   at org.apache.velocity.runtime.log.LogManager.createLogChute(LogManager.java:181)
  [WARNING]   ... 44 more
  [DEBUG] Apt returned 4
  </code></pre>
  
  <p>But when I create a simple main method on a test class and launch it with eclipse, the engine initialize well and I <strong>don't</strong> have any error.</p>
  
  <p>I put some additional information,</p>
  
  <p>the maven <em>pom.xml</em> build section</p>
  
  <pre><code>&lt;plugin&gt;
    &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;
    &lt;artifactId&gt;apt-maven-plugin&lt;/artifactId&gt;
    &lt;version&gt;1.0-alpha-4&lt;/version&gt;
    &lt;executions&gt;
      &lt;execution&gt;
        &lt;goals&gt;
          &lt;goal&gt;process&lt;/goal&gt;
        &lt;/goals&gt;
      &lt;/execution&gt;
    &lt;/executions&gt;
    &lt;configuration&gt;
      &lt;verbose&gt;true&lt;/verbose&gt;
      &lt;factory&gt;com.mycompany.portal.annotation.processing.MyAnnotationProcessorFactory&lt;/factory&gt;
    &lt;/configuration&gt;
    &lt;dependencies&gt;
      &lt;dependency&gt;
        &lt;!-- The maven artifact containing the Engine class --&gt;
        &lt;groupId&gt;com.mycompany.portal&lt;/groupId&gt;
        &lt;artifactId&gt;portal-annotations&lt;/artifactId&gt;
        &lt;version&gt;1.0&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
        &lt;groupId&gt;org.apache.velocity&lt;/groupId&gt;
        &lt;artifactId&gt;velocity&lt;/artifactId&gt;
        &lt;version&gt;1.7&lt;/version&gt;
      &lt;/dependency&gt;
    &lt;/dependencies&gt;
  &lt;/plugin&gt;
  </code></pre>
  
  <p>I also try to follow in eclipse debug mode the execution and it appears that the </p>
  
  <pre><code>private static LogChute createLogChute(RuntimeServices rsvc) throws Exception
  </code></pre>
  
  <p>method do not consider <em>org.apache.velocity.runtime.log.NullLogChute</em> as an instance of <em>LogChute</em> interface (LogManager.class line 155 the test is false) and throw the <em>VelocityException</em></p>
  
  <p>Is Velocity compatible with maven and apt-maven-plugin ?</p>