#----------------------------------------------------------------------------
# This velocity configuration file is meant to be used by
# JiraLockedError page to prevent it from contacting the Pico container.
#
# The only difference is between the man configuration
# (velocity.properties) is using the default resource manager.
# ----------------------------------------------------------------------------

#==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++
#==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++
#
# NOTE TO JIRA DEVELOPERS :
#
# To enable autoreloading, set class.resource.loader.cache to false
# and uncomment the velocimacro.library.autoreload line
#
# You can comment out the following line and comment in the next 2 lines to
# do this quickly.
#
class.resource.loader.cache=true

#class.resource.loader.cache=false
#velocimacro.library.autoreload=true

#==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++
#==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++

#----------------------------------------------------------------------------
# R U N T I M E  L O G
#----------------------------------------------------------------------------

#----------------------------------------------------------------------------
#  LogSystem to use: log4j with category "velocity"
#----------------------------------------------------------------------------
# Log4J is configured in log4j2.xml.
#----------------------------------------------------------------------------

runtime.log.logsystem.class = org.apache.velocity.runtime.log.SimpleLog4JLogSystem
runtime.log.logsystem.log4j.category=velocity

#----------------------------------------------------------------------------
# This controls if Runtime.error(), info() and warn() messages include the
# whole stack trace. The last property controls whether invalid references
# are logged.
#----------------------------------------------------------------------------

runtime.log.error.stacktrace = true
runtime.log.warn.stacktrace = true
runtime.log.info.stacktrace = true
#runtime.log.invalid.reference = true

#----------------------------------------------------------------------------
# T E M P L A T E  E N C O D I N G
#----------------------------------------------------------------------------

#input.encoding=ISO-8859-1
#output.encoding=ISO-8859-1

#----------------------------------------------------------------------------
# F O R E A C H  P R O P E R T I E S
#----------------------------------------------------------------------------
# These properties control how the counter is accessed in the #foreach
# directive. By default the reference $velocityCount will be available
# in the body of the #foreach directive. The default starting value
# for this reference is 1.
#----------------------------------------------------------------------------

#directive.foreach.counter.name = velocityCount
#directive.foreach.counter.initial.value = 1

#----------------------------------------------------------------------------
# I N C L U D E  P R O P E R T I E S
#----------------------------------------------------------------------------
# These are the properties that governed the way #include'd content
# is governed.
#----------------------------------------------------------------------------

#directive.include.output.errormsg.start = <!-- include error :
#directive.include.output.errormsg.end   =  see error log -->

#----------------------------------------------------------------------------
# P A R S E  P R O P E R T I E S
#----------------------------------------------------------------------------

#directive.parse.max.depth = 10

#----------------------------------------------------------------------------
# T E M P L A T E  L O A D E R S
#----------------------------------------------------------------------------
#
#
#----------------------------------------------------------------------------

resource.loader=class, plugin

class.resource.loader.description=Velocity Classpath Resource Loader
class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
class.resource.loader.modificationCheckInterval=0

plugin.resource.loader.description=Velocity Plugin Resource Loader
plugin.resource.loader.class=com.atlassian.jira.plugin.PluginVelocityResourceLoader
plugin.resource.loader.cache=true
plugin.resource.loader.modificationCheckInterval=0

introspector.cache.classes = com.atlassian.velocity.JiraIntrospectorCache
#----------------------------------------------------------------------------
# VELOCIMACRO PROPERTIES
#----------------------------------------------------------------------------
# global : name of default global library.  It is expected to be in the regular
# template path.  You may remove it (either the file or this property) if
# you wish with no harm.
#----------------------------------------------------------------------------

velocimacro.library = templates/email/macros.vm, templates/plugins/jira/macros.vm, templates/jira/issue/table/macros.vm, templates/jira/global.vm, templates/plugins/jira/issuelinks/macros.vm

velocimacro.permissions.allow.inline = true
#velocimacro.permissions.allow.inline.to.replace.global = false
velocimacro.permissions.allow.inline.local.scope = true

#velocimacro.context.localscope = false

#----------------------------------------------------------------------------
# INTERPOLATION
#----------------------------------------------------------------------------
# turn off and on interpolation of references and directives in string
# literals.  ON by default :)
#----------------------------------------------------------------------------

#runtime.interpolate.string.literals = true

#----------------------------------------------------------------------------
# RESOURCE MANAGEMENT
#----------------------------------------------------------------------------
# Allows alternative ResourceManager and ResourceCache implementations
# to be plugged in.
#----------------------------------------------------------------------------

# By not specifing a resource manager, the default one is used.
resource.manager.defaultcache.size=0

#----------------------------------------------------------------------------
# PLUGGABLE INTROSPECTION
#----------------------------------------------------------------------------
runtime.introspector.uberspect=com.atlassian.velocity.JiraAllowlistUberspector,com.atlassian.security.serialblocklist.velocity.BlocklistUberspector

#----------------------------------------------------------------------------
# Method translator
#----------------------------------------------------------------------------
introspector.method.translator=com.atlassian.velocity.allowlist.uberspect.AtlassianMethodTranslator

#----------------------------------------------------------------------------
# DIRECTIVES
#----------------------------------------------------------------------------

userdirective=com.atlassian.velocity.htmlsafe.directive.EnableHtmlEscaping,com.atlassian.velocity.htmlsafe.directive.DisableHtmlEscaping

#----------------------------------------------------------------------------
# Parser Pool
#----------------------------------------------------------------------------
parser.pool.class = org.apache.velocity.runtime.DynamicParserPool

introspector.proper.allowlist.enable = true
introspector.proper.allowlist.debug.enable = false
introspector.validate.exemptions.disable = false

resource.loader.file.allowlist.enabled = true
resource.loader.filetype.allowlist.enabled = true

classpath.resource.loader.filetype.allowlist=.vm, .vmd
file.resource.loader.filetype.allowlist=.vm, .vmd
plugin.resource.loader.filetype.allowlist=.vm, .vmd
