#encoding=UTF-8
#********************************************************************
# System Properties
#********************************************************************
# Location of your Mule installation.
wrapper.java.additional.1=-Dmule.home="%MULE_HOME%"
wrapper.java.additional.1.stripquotes=TRUE
wrapper.java.additional.2=-Dmule.base="%MULE_BASE%"
wrapper.java.additional.2.stripquotes=TRUE

# Sets IPv4 addresses in order to avoid multicasting issues
wrapper.java.additional.3=-Djava.net.preferIPv4Stack=TRUE

# Limit HTTP module send and receive buffers size to 1MB by default to avoid running out of Direct Memory.  To optimize for
# performance this system property should be removed and direct memory increased as required.
wrapper.java.additional.4=-Dorg.glassfish.grizzly.nio.transport.TCPNIOTransport.max-receive-buffer-size=1048576
wrapper.java.additional.5=-Dorg.glassfish.grizzly.nio.transport.TCPNIOTransport.max-send-buffer-size=1048576

# Limit the Metaspace Size to protect system memory from unwanted usage
# Increase this value if you get "Java.lang.OutOfMemoryError: Metaspace" error
wrapper.java.additional.6=-XX:MaxMetaspaceSize=256m
wrapper.java.additional.7=-XX:MetaspaceSize=128m

# GC settings
wrapper.java.additional.8=-XX:+HeapDumpOnOutOfMemoryError
wrapper.java.additional.9=-XX:+AlwaysPreTouch
wrapper.java.additional.10=-XX:NewRatio=1
wrapper.java.additional.11=-XX:MaxTenuringThreshold=8

# Default GC
# Uncomment and tune if you wish to select a collector other than the default.
# Keep in mind that because the default has changed in Java 11, this entry will be necessary to guarantee consistency among
# different environments.
#wrapper.java.additional.19=-XX:+UseParallelGC

# Avoid Quartz update check. See https://jira.terracotta.org/jira/browse/QTZ-29
wrapper.java.additional.12=-Dorg.quartz.scheduler.skipUpdateCheck=true

# Metadata Cache
wrapper.java.additional.13=-Dmule.metadata.cache.entryTtl.minutes=10
wrapper.java.additional.14=-Dmule.metadata.cache.expirationInterval.millis=5000

# Locale Compatibility Mode
wrapper.java.additional.15=-Djava.locale.providers=COMPAT,CLDR,SPI

# Disable JMX for log4j
wrapper.java.additional.16=-Dlog4j2.disable.jmx=true

# Allow default scripting languages. See https://issues.apache.org/jira/browse/LOG4J2-2486
wrapper.java.additional.17=-Dlog4j2.Script.enableLanguages=nashorn,js,javascript,ecmascript,groovy

# Wrapper implementation to use for bootstrapping
wrapper.java.additional.18=-Dmule.bootstrap.container.wrapper.class=org.mule.runtime.module.boot.tanuki.internal.MuleContainerTanukiWrapper

# Java module settings
wrapper.java.mainclass=--module=org.mule.boot/org.mule.runtime.module.reboot.MuleContainerBootstrap
wrapper.java.additional.19=--module-path="%MULE_HOME%/lib/boot%WRAPPER_PATH_SEPARATOR%%MULE_HOME%/lib/boot/tanuki"
wrapper.java.additional.19.stripquotes=TRUE
wrapper.java.additional.20=--add-modules=java.se,org.mule.boot.tanuki,org.mule.runtime.boot.log4j,org.mule.runtime.logging,org.mule.runtime.jpms.utils,com.fasterxml.jackson.core
wrapper.java.additional.21=--add-opens=java.base/java.lang=org.mule.runtime.jpms.utils
wrapper.java.additional.22=--add-opens=java.base/java.lang.reflect=org.mule.runtime.jpms.utils
wrapper.java.additional.23=--add-opens=java.base/java.lang.invoke=org.mule.runtime.jpms.utils
wrapper.java.additional.24=--add-opens=java.sql/java.sql=org.mule.runtime.jpms.utils
wrapper.java.additional.25=--add-opens=java.naming/javax.naming=org.mule.runtime.jpms.utils

# *** IMPORTANT ***
# If you enable any of the options below, you _must_ change the <n> to be a
# consecutive number (based on the number of additional properties) otherwise
# Java will not parse this properties file correctly!
# (see http://wrapper.tanukisoftware.org/doc/english/prop-java-additional-n.html)
# *** IMPORTANT ***

# Stack traces are truncated in the logs by default
#wrapper.java.additional.<n>=-Dmule.verbose.exceptions=true

# Debug remotely, the application will wait for the external debugger to connect.
#wrapper.java.additional.<n>=-Xdebug
#wrapper.java.additional.<n>=-Xnoagent
#wrapper.java.additional.<n>=-Djava.compiler=NONE
#wrapper.java.additional.<n>=-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005

# Specify an HTTP proxy if you are behind a firewall.
#wrapper.java.additional.<n>=-Dhttp.proxyHost=YOUR_HOST
#wrapper.java.additional.<n>=-Dhttp.proxyPort=YOUR_PORT
#wrapper.java.additional.<n>=-Dhttp.proxyUsername=YOUR_USER_NAME
#wrapper.java.additional.<n>=-Dhttp.proxyPassword=YOUR_PASSWORD

# Identification of your Mule server
#wrapper.java.additional.<n>=-Dmule.serverId=YOUR_MULE_SERVER
#wrapper.java.additional.<n>=-Dmule.clusterId=YOUR_MULE_CLUSTER
#wrapper.java.additional.<n>=-Dmule.domainId=YOUR_MULE_DOMAIN

# Mule's working directory for VM queue persistence, transactions, etc.
#wrapper.java.additional.<n>=-Dmule.workingDirectory=./.mule

# Enables fips140-2 mode, disabling any cryptographic modes of operation not approved in the standard.
# Note that full compliance also requires a certified JCE provider installed
#wrapper.java.additional.<n>=-Dmule.security.model=fips140-2

# Enables/disables the runtime startup log verbosity
# Default is true, set to false to reduce log size
#wrapper.java.additional.<n>=-Dmule.runtime.verbose=true


# Miscellaneous settings
#wrapper.java.additional.<n>=-Dmule.encoding=UTF-8
#wrapper.java.additional.<n>=-Dmule.endpoints.synchronous=false
#wrapper.java.additional.<n>=-Dmule.remoteSync=false
#wrapper.java.additional.<n>=-Dmule.systemModelType=seda
#wrapper.java.additional.<n>=-Dmule.clientMode=false

# Debug options
#wrapper.java.additional.<n>=-Dmule.disable.threadsafemessages=false
#wrapper.java.additional.<n>=-Dmule.message.cacheBytes=true
#wrapper.java.additional.<n>=-Dmule.message.cacheOriginal=true
#wrapper.java.additional.<n>=-Dmule.streaming.enable=true
#wrapper.java.additional.<n>=-Dmule.message.assertAccess=true
#wrapper.java.additional.<n>=-Dmule.transform.autoWrap=true

# Performance settings
#wrapper.java.additional.<n>=-XX:+UseConcMarkSweepGC
#wrapper.java.additional.<n>=-XX:CMSInitiatingOccupancyFraction=65
#wrapper.java.additional.<n>=-XX:+UseCMSInitiatingOccupancyOnly
#wrapper.java.additional.<n>=-XX:+PrintGCApplicationStoppedTime
#wrapper.java.additional.<n>=-XX:+PrintGCDetails
#wrapper.java.additional.<n>=-XX:+PrintGCDateStamps
#wrapper.java.additional.<n>=-XX:+PrintTenuringDistribution
#wrapper.java.additional.<n>=-Xloggc:%MULE_HOME%/logs/gc.log
#wrapper.java.additional.<n>=-XX:+UseGCLogFileRotation
#wrapper.java.additional.<n>=-XX:NumberOfGCLogFiles=5
#wrapper.java.additional.<n>=-XX:GCLogFileSize=1M
#wrapper.java.additional.<n>=-XX:ErrorFile=%MULE_HOME%/logs/err.log

#********************************************************************
# Wrapper Properties
#********************************************************************
# Uncomment this line in the case of startup failure.
#wrapper.debug=true

# Java Application
wrapper.java.command=%JAVA_HOME%/bin/java

# Java Native Library Path (location of .DLL or .so files)
wrapper.java.library.path.1=%LD_LIBRARY_PATH%
wrapper.java.library.path.2=%MULE_HOME%/lib/boot/tanuki

# Increase the default startup timeout so that the JVM has enough
# time to download the required jars on a slow connection
wrapper.startup.timeout=600

# Initial Java Heap Size (in MB)
wrapper.java.initmemory=1024

# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=1024

# Ignore gaps in additional properties sequence
wrapper.ignore_sequence_gaps=TRUE

#********************************************************************
# Wrapper Logging Properties
#********************************************************************
# Format of output for the console.  (See docs for formats)
wrapper.console.format=M

# Log Level for console output.  (See docs for log levels)
wrapper.console.loglevel=INFO

# Log file to use for wrapper output logging.
wrapper.logfile=%MULE_BASE%/logs/%MULE_APP%.log

# Format of output for the log file.  (See docs for formats)
wrapper.logfile.format=M

# Log Level for log file output.  (See docs for log levels)
wrapper.logfile.loglevel=INFO

# Maximum size that the log file will be allowed to grow to before
#  the log is rolled. Size is specified in bytes.  The default value
#  of 0, disables log rolling.  May abbreviate with the 'k' (kb) or
#  'm' (mb) suffix.  For example: 10m = 10 megabytes.
wrapper.logfile.maxsize=1m

# Maximum number of rolled log files which will be allowed before old
#  files are deleted.  The default value of 0 implies no limit.
wrapper.logfile.maxfiles=10

# Log Level for sys/event log output.  (See docs for log levels)
wrapper.syslog.loglevel=NONE

#********************************************************************
# Wrapper Windows Properties
#********************************************************************
# Title to use when running as a console
wrapper.console.title=%MULE_APP_LONG%

#********************************************************************
# Wrapper Windows NT/2000/XP Service Properties
#********************************************************************
# WARNING - Do not modify any of these properties when an application
#  using this configuration file has been installed as a service.
#  Please uninstall the service before modifying this section.  The
#  service can then be reinstalled.

# Name of the service
wrapper.ntservice.name=%MULE_APP%

# Display name of the service
wrapper.ntservice.displayname=%MULE_APP_LONG%

# Description of the service
wrapper.ntservice.description=%MULE_APP_LONG%

# Service dependencies.  Add dependencies as needed starting from 1
wrapper.ntservice.dependency.1=

# Mode in which the service is installed.  AUTO_START or DEMAND_START
wrapper.ntservice.starttype=AUTO_START

# Allow the service to interact with the desktop.
wrapper.ntservice.interactive=false


# Do not edit lines below!
# This include should point to wrapper-additional.conf file in the same directory as this file
# ATTENTION: Path must be either absolute or relative to wrapper executable.
#include %MULE_BASE%/conf/wrapper-additional.conf
