Velocity Tools
  1. Velocity Tools
  2. VELTOOLS-7

Add the VelocityWriter to the context of the VelocityViewServlet

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 1.1
    • Fix Version/s: 1.2
    • Component/s: None
    • Labels:
      None
    • Environment:
      Operating System: All
      Platform: All

      Description

      The reason and purpose of this is for performance situations as stated by
      Nikolaj.Brinch.Joergensen@sdk.sas.com

      Following the recent thread discussion...

      http://www.mail-archive.com/velocity-user@jakarta.apache.org/msg07051.html
      http://www.mail-archive.com/velocity-user@jakarta.apache.org/msg07066.html

      <snip>
      BUT...this shows where an enhancement would be nice to have. If the
      statement in the mergeTemplate() method of:

      template.merge( context, vw);

      was replaced with:

      performMerge( template, context, vm );

      where performMerge was a protected method of VelocityServlet with the
      original statement as its default behavior, then you could easily
      override this method in a subclass of VelocityServlet to place the
      writer into the context. The VelocityServlet could still manage the
      private writerPool.
      <\snip>

      An alternative solution would be to allow the writerPool, encoding and other
      private methods be protected so that it would be easier to override the
      mergerTemplate method so this could be implemented by the developer. Maybe both
      should be done.

      bill

        Activity

        Hide
        Geir Magnusson Jr added a comment -

        definitely will expose this somehow

        I assume something as straightforward as

        getCurrentWriter()

        would do it?

        Show
        Geir Magnusson Jr added a comment - definitely will expose this somehow I assume something as straightforward as getCurrentWriter() would do it?
        Hide
        Bill Boland added a comment -

        I'm not certain how getCurrentWriter() would help or what class this method
        would belong to. Could you describe it's use in a sample? Is this to
        encapsulate the pool? if so, how is the writer release back to the pool?

        In VelocityServlet, the mergetTemplate method creates/gets the writer and
        performs the merge. allowing no intermediate intervention by a subclass to
        include the writer object into the context. It them releases the writer back to
        a pool.

        Show
        Bill Boland added a comment - I'm not certain how getCurrentWriter() would help or what class this method would belong to. Could you describe it's use in a sample? Is this to encapsulate the pool? if so, how is the writer release back to the pool? In VelocityServlet, the mergetTemplate method creates/gets the writer and performs the merge. allowing no intermediate intervention by a subclass to include the writer object into the context. It them releases the writer back to a pool.
        Hide
        Will Glass-Husain added a comment -

        Took a look at this old enhancement request.

        VelocityServlet is officially now deprecated for the 1.5 release - no new
        fixes will be applied.

        Might this be applicable to the replacement VelocityViewServlet in the
        excellent subproject Velocity-Tools? Changing the title. Please evaluate.

        Also, if anyone is interested in writing a patch for this, it might help.

        Show
        Will Glass-Husain added a comment - Took a look at this old enhancement request. VelocityServlet is officially now deprecated for the 1.5 release - no new fixes will be applied. Might this be applicable to the replacement VelocityViewServlet in the excellent subproject Velocity-Tools? Changing the title. Please evaluate. Also, if anyone is interested in writing a patch for this, it might help.
        Hide
        Nathan Bubna added a comment -

        breaking the template.merge(...) method out into a protected performMerge(...) sounds fine to me.

        Show
        Nathan Bubna added a comment - breaking the template.merge(...) method out into a protected performMerge(...) sounds fine to me.
        Hide
        Nathan Bubna added a comment -
        Show
        Nathan Bubna added a comment - done, as of http://svn.apache.org/viewcvs?rev=321228&view=rev

          People

          • Assignee:
            Nathan Bubna
            Reporter:
            Bill Boland
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development