#********************************************************************
# 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
wrapper.java.classpath.6=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

