Package org.carrot2.workbench.velocity

Source Code of org.carrot2.workbench.velocity.VelocityInitializer

/*
* Carrot2 project.
*
* Copyright (C) 2002-2014, Dawid Weiss, Stanisław Osiński.
* All rights reserved.
*
* Refer to the full license file "carrot2.LICENSE"
* in the root folder of the repository checkout or at:
* http://www.carrot2.org/carrot2.LICENSE
*/

package org.carrot2.workbench.velocity;

import org.apache.commons.collections.ExtendedProperties;
import org.apache.commons.lang.StringUtils;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.RuntimeInstance;
import org.apache.velocity.runtime.log.NullLogChute;
import org.apache.velocity.tools.generic.EscapeTool;
import org.carrot2.workbench.core.WorkbenchCorePlugin;
import org.carrot2.workbench.core.preferences.PreferenceConstants;
import org.eclipse.jface.preference.IPreferenceStore;

/**
* See {@link #createInstance(String, String)}.
*/
public final class VelocityInitializer
{
    private VelocityInitializer()
    {
        // No instances.
    }
   
    /**
     * Initialize Velocity engine instance, disables logging,
     * sets bundle-relative resource loader.
     */
    public static RuntimeInstance createInstance(String bundleID, String templatePrefix)
    {
        try
        {
            final ExtendedProperties p = new ExtendedProperties();
            p.setProperty("resource.loader", "bundle");
            p.setProperty("bundle.resource.loader.instance", new BundleResourceLoader(
                bundleID, templatePrefix));
            p.setProperty(RuntimeConstants.SET_NULL_ALLOWED, "true");

            // Disable separate Velocity logging.
            p.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM_CLASS,
                NullLogChute.class.getName());
   
            final RuntimeInstance velocity = new RuntimeInstance();
            velocity.setConfiguration(p);
            return velocity;
        }
        catch (Exception e)
        {
            throw new RuntimeException("Velocity initialization failed.", e);
        }
    }

    /**
     * Create Velocity context and place default tools into it.
     */
    public static VelocityContext createContext()
    {
        final VelocityContext context = new VelocityContext();
       
        context.put("esc", new EscapeTool());
        context.put("stringutils", new StringUtils());
        context.put("annotationutils", new AnnotationUtils());

        final IPreferenceStore store = WorkbenchCorePlugin.getDefault().getPreferenceStore();
        int maxFieldLength = store.getInt(PreferenceConstants.MAX_FIELD_LENGTH);
        if (maxFieldLength == 0) maxFieldLength = Integer.MAX_VALUE;
        context.put("maxFieldLength", maxFieldLength);

        return context;
    }
}
TOP

Related Classes of org.carrot2.workbench.velocity.VelocityInitializer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.