Release Notes/0.4.1

=Release 0.4.1 (svn r779, May 2011)=

v0.4.1 is a pre-alpha technology demonstration release. This is the last release that will be distributed over Subversion. This and future releases will be released from our git repository.

Installation
Interested developers should follow the instructions at Intro to hacking to download the source code from git and Mirroring the database for setting up a local copy of the database.

You may also try the demo as a service at http://shell.jewishliturgy.org:8080/code/apps/builder

User interfaces
0.4.1 provides user interfaces for:
 * User management: User creation, login, and some profile options. Accessible at http://localhost:8080/code/apps/user on local installations and http://shell.jewishliturgy.org:8080/code/apps/user on the demo server. Note that much of the user management architecture will change when we introduce OpenID authentication. However, we will still need the same types of information, as they can be used to provide required attribution and to contact a contributor in case of questions or a copyright dispute. As of now, all users belong to their own group, and the universal "everyone" group. Group management features will be added at a later time.
 * Simple builder application: The first UI that allows simple editing of a JLPTEI XML text online. The builder includes two editing views: one for document metadata, and one for document content. Documents created with this builder may include whole portions of any texts already shared in the database. Because the group system is not yet in place, sharing created documents between users is currently disabled. In addition, the builder has a simple integrated compile view. Accessible at http://localhost:8080/code/apps/builder on local installations and http://shell.jewishliturgy.org:8080/code/apps/builder on the demo server.
 * Tanakh XML to HTML compiler demo, enhanced from previous versions. The new version is based on the same XRX controls as the user management and the builder app. Accessible at http://localhost:8080/code/apps/compiler on local installations and http://shell.jewishliturgy.org:8080/code/apps/compiler on the demo server. The compiler relies on the existence of a user "demouser" with a hard-coded password.
 * Transliterator demo: unchanged from v0.3.1.

Debugging information is shown in the user interfaces if the HTTP requests are made to a "localhost" server.

REST API
v0.4.1 is the first release to include a browsable REST API, which is used by all the XRX applications to query the database. In an installed local database, the API is accessible at http://localhost:8080/code/api and on the server, it is accessible at http://shell.jewishliturgy.org:8080/code/api. Querying is generally done using HTTP GET, and data is usually returned in XHTML, allowing standard web browsers to use the API to view the contents of the database.

Ideally, the API would support all the HTTP methods, including POST, PUT and DELETE. However, a bug (or is it a feature?) in the backend eXist database makes it impossible to write an API that use PUT and DELETE. Where necessary, these methods are simulated by HTTP POST where an additional query parameter ?_method=[PUT|DELETE] is provided.

A non-RESTful session-based login component is included. API functions also support HTTP Basic authentication.

XRX Toolkit
Complimenting the API, some XForms/XQuery based reusable user interface widgets are included, including login, document choosers, ordered list viewers, and license choosers. These toolkit functions are included in the *.xqm XQuery modules.

The XRX toolkit is not a necessary part of the Open Siddur architecture. It is a consequence of having to write both a UI and an API. The source code and data transfer of the XRX toolkit can serve as example code for API usage.

Transforms
The transforms have been modified to use embedded database URIs to access in-database documents, instead of HTTP requests. The cache controller no longer works through HTTP requests, as it did in v0.4.0.

Warnings/known issues

 * Because all usernames and passwords are sent in clear text, use of valuable authentication information is not recommended.
 * Because this is a technology demonstration, accounts and files stored on the demo server may be deleted at any time.
 * Simultaneous compilations of the same document may result in the failure of one of them. The reason is that only one thread can write a single document to the cache at a time. While one thread processes the document in the cache, the other will find it is in progress and do nothing with it. If the second thread requires the document before the caching is complete, it will return an error. The background task scheduler in v0.4.3 is expected to solve this issue.

Bug reports
Please send detailed bug reports to the technology discussion email list. If an issue needs further attention, it will be entered into our issue tracker.