Bundling Velocity in a plugin does not work

Hello, I am trying to bundle velocity 1.5 in a new plugin I am creating.

When I do the normal velocity init:

try {
} catch (Exception e) {

I get the exception below. It works outside the plugin. I would guess this is a classloader problem.

Does anyone know of a solution? There must be one since I know some other plugins use Velocity.

Mikael Grev

java.lang.Exception: The specified class for ResourceManager (org.apache.velocity.runtime.resource.ResourceManagerImpl) does not implement org.apache.velocity.runtime.resource.ResourceManager; Velocity is not initialized correctly.
at org.apache.velocity.runtime.RuntimeInstance.initializeResourceManager(RuntimeInstance.java:589)
at org.apache.velocity.runtime.RuntimeInstance.init(RuntimeInstance.java:241)
at org.apache.velocity.runtime.RuntimeSingleton.init(RuntimeSingleton.java:113)
at org.apache.velocity.app.Velocity.init(Velocity.java:83)
at com.miginfocom.beanpropertiesplugin.idea.WriteAccessorMethods.actionPerformed(WriteAccessorMethods.java:38)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.a(IdeKeyEventDispatcher.java:9)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.b(IdeKeyEventDispatcher.java:194)
at com.intellij.openapi.keymap.impl.IdeKeyEventDispatcher.dispatchKeyEvent(IdeKeyEventDispatcher.java:228)
at com.intellij.ide.IdeEventQueue.b(IdeEventQueue.java:108)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:87)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

Comment actions Permalink

Following is my code in iBATIS plugin, please try.
VelocityContext context = new VelocityContext();
context.put("package", JavaDirectoryService.getInstance().getPackage(psiDirectoryBean).getQualifiedName());
context.put("name", className);
context.put("tableName", tableData.getName());
List classFields = new ArrayList]]>();
for (DatabaseTableFieldData tableFieldData : tableData.getFields()) {
context.put("fieldList", classFields);
StringWriter writer = new StringWriter();
VelocityEngine engine = new VelocityEngine();
engine.evaluate(context, writer, "iBATIS", new StringReader(config.beanTemplate));

Comment actions Permalink

Thanks. Unfortunately I get the same exception, now from engine.init();

I am using IDEA 7.0.4 with the corresponding IDEA plugin devkit.
Velocity 1.5 (both the main jar and the dependencies jar).

I am deploying the two jars using a Library and then marking it for export. Is there another way to include .jar dependencies in IDEA plugins?


Comment actions Permalink

Do you include velocity.jar in your classpath, because IDEA has bundled it.

Comment actions Permalink

Thank You!

I did not know that IDEA had it bundled. That was the problem I had. It also means less baggage. :)


Comment actions Permalink


if the jar not included then empty file is generated in the given location but not the actual evaluated template output.

( Note ) Working when testing it with intellij plugin development environment but fails when installed as plugin.


Please sign in to leave a comment.