Uploaded image for project: 'Velocity'
  1. Velocity
  2. VELOCITY-673

Remove calling init method from the VelocityEngine non default constructors

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • None
    • Engine
    • None

    Description

      Based on the following user group discussion:

      On Jan 19, 2009, at 13:44 , lacco wrote:

      Okay, it works now: The init method shouldn't be called at all when setting
      properties by hand... Besides, the servlet context has to be set. My final version:

      VelocityEngine ve = new VelocityEngine();
      ve.setApplicationAttribute("javax.servlet.ServletContext",
      servletContext);
      ve.setProperty("resource.loader", "webapp");
      ve.setProperty("webapp.resource.loader.class",
      "org.apache.velocity.tools.view.servlet.WebappLoader");
      ve.setProperty("webapp.resource.loader.path",
      "/WEB-INF/classes/de/hpi/petrinet/serialization/erdf");
      Template t = ve.getTemplate( "petrinet.erdf.vm" );

      On Mon, Jan 19, 2009 at 11:12 PM, Byron Foster <byron@base2.cc> wrote:

      Yea, I think this is confusing. Calling the non default constructors for
      VelocityEngine calls the init() method, but calling the default constructor
      does not. So, if you call VelocityEngine(props) then you can't set any more
      properties after that point.

      Nathan responded:

      Agreed. Let's change that. Besides, most methods that need Velocity
      to be init'ed will now call it themselves if used before init() has
      been called. There is absolutely no reason to call init from any
      constructor.

      Attachments

        Activity

          People

            Unassigned Unassigned
            byronvf Byron Foster
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: