version=0.13.0

# Uncomment to include Extra features
include.extra.features
# Uncomment to include Scratchpad features
#include.scratchpad.features

# Uncomment to include Extra widgets
include.extra.widgets
# Uncomment to include Scratchpad widgets
#include.scratchpad.widgets

# The location of your servlets webapp directory, (required: defaults to location for
# standalone server)
servletEngine.webapp.dir=build/webapp

# The location of your container lib directory, (required for deployed non-standalone
# configurations)
#servletEngine.container.lib.dir=

# The location of your tomcat container webapp context configuration directory, (required
# for deployed non-standalone configurations; requires configuration of wookie.db.user,
# wookie.db.password, wookie.db.driver, wookie.db.uri, and jdbc.driver.path properties below
# for JPA JDBC configurations)
#servletEngine.context.conf.dir=

# Generic JPA JDBC server configuration; supported database types: db2, derby, hsqldb, mssql,
# mysql, mysql5, oracle, oracle9, oracle10, postgresql, and sybase; (all properties required
# for deployed non-standalone configurations)
#wookie.persistence.manager.type=jpa
#wookie.db.user=java
#wookie.db.password=java
#wookie.db.driver=com.mysql.jdbc.Driver
#wookie.db.uri=jdbc:mysql://localhost:3306/widgetdb
#wookie.db.type=mysql
#jdbc.driver.path=../mysql-connector-java-5.1.7.jar

# Embedded Jackrabbit JCR server configuration, (all properties required for deployed
# non-standalone configurations)
#wookie.persistence.manager.type=jcr
#wookie.repository.user=java
#wookie.repository.password=java
#wookie.repository.rootpath=/wookie
#wookie.repository.workspace=default

################################################################################
################################################################################
# In most cases you will not not to change the settings below this line
# Only change them if you know what you are doing.
################################################################################
################################################################################

# build configuration properties
build.dir=build
ivy.repository.dir=ant

# Wookie release properties
wookie.release.dir=release

# Wookie connector framework properties
wookie.connector.dir=connector

# Wookie W3c Parser properties
wookie.parser.w3c.dir=parser

wookie.digsig.client.w3c.dir=digsig-client
#
# Widget handling properties
#
# These are ant exclude and include patterns that will filter the directories in the widgets src folder
# any widgets that match this filter will be deployed at runtime in the standalone server 
# or when "ant deploy-all" is run from any widget directory
widget.deploy.include=*/build.xml
widget.deploy.exclude=none

# Feature handling properties
wookie.features.dir=features

# Standalone server configuration
main.start.class.name=org.apache.wookie.server.Start
main.stop.class.name=org.apache.wookie.server.Stop
jvmargs=
run.args="port=8080"