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

# set the working directory to the AXIS_HOME
wrapper.working.dir=../../samples/axis2Server

# 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
wrapper.java.classpath.4=../../repository/conf
wrapper.java.classpath.5=../../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=-Dhttp_port
wrapper.java.additional.2=-Dhttps_port
wrapper.java.additional.3=-Dserver_name
wrapper.java.additional.4=-Djava.endorsed.dirs=../../lib/endorsed
wrapper.java.additional.5=-Dlog4j.configuration=file:../../lib/log4j.properties
wrapper.java.additional.6=-Djava.io.tmpdir=../../work/temp/sampleServer
wrapper.java.additional.7=


# Initial Java Heap Size (in MB) - compute according to system
wrapper.java.initmemory=128

# Maximum Java Heap Size (in MB) - compute according to system
wrapper.java.maxmemory=128

# Application parameters.  Add parameters as needed starting from 1
wrapper.app.parameter.1=samples.util.SampleAxis2Server
wrapper.app.parameter.2=-repo %AXIS2_HOME%repository
wrapper.app.parameter.3=-conf %AXIS2_HOME%repository\conf\axis2.xml

#********************************************************************
# 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/sample-server.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=5m

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

# 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=Sample Axis2 Server

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

# Display name of the service
#wrapper.ntservice.displayname=Sample Axis2 Server

# Description of the service
#wrapper.ntservice.description=Sample Axis2 Server

# 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

