#********************************************************************
# 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 will be initiated from this class(8 and 9 are required parameters) 
#wrapper.app.parameter.1=samples.util.Bootstrap
#wrapper additional parameters(8 and 9 required) to overcome windows long classpath issue using Bootstrap
#wrapper.java.additional.8=-Djar.class.paths=../../lib,../../repository/components/plugins
#wrapper.java.additional.9=-Dsystem.home=.

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

