#********************************************************************
# Wrapper Properties
#********************************************************************
# Java Application
wrapper.java.command=java

# set the working directory to the SYNAPSE_HOME
wrapper.working.dir=../..

# Java Main class.  This class must implement the WrapperListener interface
#  or guarantee that the WrapperManager class is initialized.  Helper
#  classes are provided to do this for you.  See the Integration section
#  of the documentation for details.
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp

# Java Classpath (include wrapper.jar)  Add class path elements as
#  needed starting from 1
wrapper.java.classpath.1=%CLASSPATH%
wrapper.java.classpath.2=lib/wrapper-3.2.3.jar
wrapper.java.classpath.3=lib/patches
wrapper.java.classpath.4=lib/patches/*.jar
wrapper.java.classpath.5=lib
wrapper.java.classpath.6=repository/conf
wrapper.java.classpath.7=lib/*.jar

# Java Library Path (location of Wrapper.DLL or libwrapper.so)
wrapper.java.library.path.1=lib

# Java Additional Parameters
wrapper.java.additional.1=-Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XMLGrammarCachingConfiguration
wrapper.java.additional.2=-Djava.endorsed.dirs=lib/endorsed
wrapper.java.additional.3=-Djava.io.tmpdir=work/temp/synapse
wrapper.java.additional.4=
# ----- Uncoment this to enable SSL debug options -----------
#wrapper.java,additional.5=-Djavax.net.debug=all

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

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

# Application parameters.  Add parameters as needed starting from 1
wrapper.app.parameter.1=org.apache.synapse.SynapseServer
wrapper.app.parameter.2=repository
wrapper.app.parameter.3=repository/conf/axis2.xml
wrapper.app.parameter.4=.
wrapper.app.parameter.5=repository/conf/synapse-config
wrapper.app.parameter.6=repository
# deployment mode , set value to 'production' if it is production env.
wrapper.app.parameter.7=
# add the serverName for the synapse instance, if any. Defaults to the hostname
wrapper.app.parameter.8=

#********************************************************************
# 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=logs/wrapper.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=0

# 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=0

# 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=Apache Synapse (Synapse)

#********************************************************************
# 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=Synapse

# Display name of the service
wrapper.ntservice.displayname=Apache Synapse (Synapse)

# Description of the service
wrapper.ntservice.description=Apache Synapse (Synapse)

# 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
