#
#  This file contains defaults for development.  If you are cross-
#  developing in multiple environments, just change the defaults
#  in this file.
#
#  Any changes in this file will be reflected in the default
#  jspwiki.properties-file when it is run.
#
@appname@=JSPWiki
@pagedir@=/p/web/www-data/jspwiki/
@logfile@=/tmp/jspwiki.log
@securitylog@=/tmp/security.log

@tests.pagedir@=/tmp/testrepository
@tests.workdir@=/tmp/testworkdir
@tests.logfile@=/tmp/jspwikitests.log

@tests.auth.filename=/tmp/testrepository/auth.txt
@tests.filter@=tests/etc/filters.xml

# JavaMail configuration
@mail.from@=JSPWiki@localhost
@mail.smtp.host@=localhost

#  Enable these if you wish to create a static content tarball
#  for use with Apache or another front-end web server.
#  You should specify user and group names that make sense for
#  your environment.

static.user = apache
static.group = daemon
jks.password = jspwiki

#
#  If you are running web tests, these need to be set to your
#  Tomcat admin name and password.
#
tomcat.admin = admin
tomcat.password = greyroot

#
#  JDBC testing properties
#
jdbc.driver.id=hsql
jdbc.driver.jar=lib/hsqldb.jar
jdbc.driver.class=org.hsqldb.jdbcDriver
jdbc.driver.url=jdbc:hsqldb:hsql://localhost/jspwiki
jdbc.admin.id=SA
jdbc.admin.password=
jdbc.user.id=jspwiki
jdbc.user.password=password
