Arend v. Reinersdorff created VELOCITY-987:
----------------------------------------------

             Summary: Directive to fail execution of the current template with 
an error message
                 Key: VELOCITY-987
                 URL: https://issues.apache.org/jira/browse/VELOCITY-987
             Project: Velocity
          Issue Type: New Feature
            Reporter: Arend v. Reinersdorff


My current use case is generating a Dockerfile and setting the base image 
according to a Java version parameter. Accepted values for Java versions are 
limited (17, 11, 8). Problem was when 21 was added as a new Java version, the 
if-block was not updated. Template generation succeeded using a fallback image 
and an error appeared later.

If the fallback could have failed the template generation, the error would have 
been discovered sooner.

*Requirements*
 * Directive to fail the template generation
 * Ability to add an error message
 * Error should lead to the place of failure (template file, line number)

*Example usage*
{code:java}
#if (${javaVersion} == '21')
    FROM icr.io/appcafe/open-liberty:full-java21-openj9-ubi-minimal
#elseif (${javaVersion} == '17')
    FROM icr.io/appcafe/open-liberty:full-java17-openj9-ubi
#else
    #fail("Unsupported Java version: ${javaVersion}")
#end{code}
ErrorĀ  message might loook like this:

Template execution failed for example.vm line 6: Unsupported Java version: 11

*Difference to stop*

I am aware of the #stop directive. But as it doesn't fail the template 
generation. So it is not visible that an error occured.

*See also*

https://stackoverflow.com/questions/46587599/how-to-fail-velocity-template-processing-with-tracable-message



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@velocity.apache.org
For additional commands, e-mail: dev-h...@velocity.apache.org

Reply via email to