You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
Weld assumes requests are single threaded, and uses thread locals to isolate requests. This means that if user created threads are used then built in implementation of the session scope, the request scope and the conversation scope, will become dissociated, and you will find they are no longer active in the new thread, nor able to access their contextual data. The Weld reference guide (1.1.0.Beta3 onwards) contains information on how to associate a request to a context and acticate it. Doing this in your new thread will cause the contexts to be active, and contain the same contextual data.
The dependent context and the application context will work as usual in any user created thread.
Seam Scheduling (planned for Seam 3) will provide the ability to create threads which do propagate contexts as needed.