Downloading Wookie
Wookie is designed to be downloaded using subversion; to checkout the latest code:
svn co http://svn.apache.org/repos/asf/incubator/wookie/trunk
If you are a committer you should use https:// rather than http://
This will downloaded the latest source code to your current folder. You then need to enter:
cd PROJECT_HOME_DIRECTORY
ant
The first time you run this command all dependencies will be downloaded so you must be online and it will take some time. Subsequent builds will be much faster.
You can run Wookie in a number of different configurations, as described in the following sections.
Configuring your IDE
Wookie use Apache Ivy to resolve dependencies, you will therefore need the IvyDE plugin available at http://ant.apache.org/ivy/ivyde/index.html.
Running Wookie in "standalone" mode
The quickest way to run Wookie is in "standalone" mode; in this mode Wookie uses a local database and embedded server. This is a good way to experiment with Wookie in development.
To run Wookie in standalone mode:
ant run
The first command will download any required libraries for Wookie. The second will start a server running on port 8080. To access it, go to http://localhost:8080/wookie
To access the administration menu (http://localhost:8080/wookie/admin) use the username 'java' and password 'java'.
If you want to start with a completely clean build then use:
ant clean-build run
If you want to clean the database use:
ant clean-db
Note that if you shut down the server and restart it you MUST clean the database, or you will get an error.
Running on a different port
If the default port of 8080 is not suitable for your environment you can change it by adding a line like the one following to local.build.properties
:
run.args=port=8888
Running Wookie in debug mode
You can start Wookie in debug mode using JDSPA with the following command:
ant -Djvmargs="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" run
Running Wookie with Tomcat and MySQL
The following will compile and run the server in Tomcat with a MySQL database. The database tables will be set up automatically, however you must have previously created a database called "widgetdb" with username "java" and password "java". (If you want to change the database connection settings, then you need to alter the scripts/mysql/hibernate.cfg.xml.)
Edit the "build.properties" file as follows:
- uncomment "project.using.mysql=true" and comment out "project.using.derby=true"
- set "servletEngine.webapp.dir=" to the location of your tomcat webapps directory.
Create a user with the role "widgetadmin" in your tomcat installation. For example, add the following to tomcat-users.xml:
<role rolename="widgetadmin"/>
<user username="java" password="java" roles="widgetadmin"/>
If you have previously used Wookie in standalone deployment, to ensure the right scripts are included in the build you need to run:
ant clean-build
Then to build and deploy the webapp, run:
ant deploy-webapp
Once Wookie is deployed, you can setup the MySQL tables by running:
ant clean-db
You can then start Tomcat as usual.
To access the administration menu (http://localhost:8080/wookie/admin) use the username 'java' and password 'java'.
If you want to start with a completely clean build then use:
ant clean-build deploy-webapp
If you want to clean the database use:
ant clean-db
By default Wookie connects to MySQL using Hibernate and the C3P0 connection pooler.
Once the server is running connect your debugger to port 8000. If "suspend=y" is used, it will will block, waiting for a debug connection before starting the server.
Running Wookie with other configurations
Other configurations of Wookie can also be run; the main requirements are a servlet container and a database. The setup information for databases can be found in the /scripts directory. How these are loaded into configurations is defined in build.xml; the main requirement is to define connection details in scripts/database/hibernate.cfg.xml and to define the database setup script in scripts/database/widgetdb.sql.
The deploy-webapp task can be used to deploy Wookie to any servlet container application.