velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve O'Hara <soh...@pivotal-solutions.co.uk>
Subject Problem with static classes and chained contexts
Date Thu, 07 Jun 2012 14:53:20 GMT
Hi All,

Has anyone else noticed a problem with chained contexts and static classes?
As a performance improvement, I decided to put all our static context objects into a context
that would be the basis of all new contexts e.g.

    private static Context chainedContext;
    static {
        chainedContext = Z_getDefaultVelocityContext();
    }

    private static Context Z_getDefaultVelocityContext() {
        Context context = new VelocityContext();
        context.put("TmpDir", Common.getTemporaryDirectory());
        context.put("math", new MathTool());
        context.put("number", new NumberTool());
        context.put("sort", new SortTool());
        context.put("LSQUARE_CHAR", '[');
        context.put("RSQUARE_CHAR", ']');
        context.put("LCURLY_CHAR", '{');
        context.put("RCURLY_CHAR", '}');
        context.put("DOT_CHAR", '.');
        context.put("NEWLINE", '\n');
        context.put("HASH", '#');
        context.put("DOLLAR", '$');
        context.put("DQUOTE", '"');
        context.put("Utils", Common.class);
        return context;
    }

    public static Context getVelocityContext(boolean runtimeMode) {
        Context context = new VelocityContext(chainedContext);
        context.put("Context", context);
        return context;
    }

The problem is that in this configuration, $Utils is not available in the scripts.
All the other instantiated objects are OK.  Works fine of course if the static class is added
to each outer context.

I guess it's a bug but actually am I really going to gain much performance with this technique
anyway?

Cheers
Steve




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@velocity.apache.org
For additional commands, e-mail: user-help@velocity.apache.org


Mime
View raw message