| Feed Contents | |||
|---|---|---|---|
| Refactor HTTP Interfaces | by adam | 16-12-2008 16:33 | |
| XFormsFilter | by adam | 16-12-2008 16:25 | |
| SOAPServer | by adam | 16-12-2008 16:18 | |
| Support external URIs with XInclude | by wolf | 8-9-2008 22:07 | |
| MVC Framework | by wolf | 8-9-2008 22:07 | |
| Documentation Search | by wolf | 8-9-2008 22:07 | |
| XQuery API for Java | by wolf | 8-9-2008 22:07 | |
| Complete New Sandbox | by wolf | 8-9-2008 22:07 | |
Refactor HTTP Interfaces
A refactoring of eXists HTTP Interfaces - EXistServlet, RESTServer, SOAPServer, WebDAV.
Benefits
- Upgrade to Jetty 6
- Make use of NIO (take lessons from Apache MINA)
- Simplify and reduce the code
- Improve testability
- Allow easy extensibility
- Simplify control and configuration
- 0 Comments
- Add Comment
XFormsFilter
The XFormsFilter provided with eXist allows integration with an older version of Chiba and provides XHTML output support for Chiba. The XFormsFilter concept has now been adopted by Chiba as their preferred access method.
We need to investigate whether Chiba is still an active and relevant implementation of XForms and if so a new integration with Chiba should be provided.
Open Tasks for Chiba Integration
- Analysis of Chiba viability
- Contributions to Chiba's XFormsFilter to support operation without additional Servlets
- Build scripts for integrating eXist and Chiba
- Documentation
SOAPServer
SOAPServer provided with eXist at present is limited and un-documented. As a proof of concept it works well but now needs to be extended to provide a production quality feature.
Open Tasks
- JUnit test cases
- Compliant XML-RPC style service support
- Compliant document/literal style service support
- Support for returning element() from a web service
- Better configuration of what is a web service i.e. not using .xqws extension (metadata?)
- Document
Support external URIs with XInclude
Until now, eXist's support for XInclude is limited to resources stored in the database, i.e. the following won't work:
Open tasks
Implementation is nearly complete, just some tests are missing.
MVC Framework
I'm working to extend my XQueryURLRewrite servlet filter into a (very) basic model-view-controller framework inspired by django or similar products. XQueryURLRewrite is used by AtomicWiki to map URL spaces to XQueries. It does so by calling a controller XQuery, which tells the servlet filter how the request should be processed. The request can be sent to another servlet or path or even an XQuery function.
The next step would be to allow a view to be applied to the response. The view could again be a servlet or another XQuery function.
Documentation Search
The documentation that comes with eXist should be made searchable. I started working on a search interface which is based on eXist's own full text search features.
The application should eventually serve as an example webapp for a beginner's tutorial.
Open tasks
- add links from search results into the documentation
XQuery API for Java
A nearly finished implementation of the XQuery API for Java (XQJ) is available in SVN. It was started as a Google Summer of Code project in 2007 and provides two XQJ drivers, one for embedded database access, one for remote access.
I recently invested some time to bring the branch into sync with the current trunk. The remote database driver, which is based on the REST-style HTTP interface of eXist, should already be pretty usable. The embedded driver needs some redesign though (it breaks the test suite). However, it should not be too much work to fix this and finally merge it into trunk.
Open Tasks
- integrate the official XQJ test suite
- test for standard conformance
- fix the embedded database driver
- merge into trunk
- performance tests
Complete New Sandbox
Some time ago I did a major rewrite of the sandbox application:
http://demo.exist-db.org/sandbox2/sandbox.xql
It is nearly usable, but the syntax-highlighting editor component is limited. In particular, it has no support for safari.
Issues with util:eval==
Also, the sandbox still uses util:eval to execute the entered XQuery code. This works well for simple queries, but can have side-effects if the query imports external modules or tries to access the http context.
For the purpose of the sandbox, it would be better to post the user-supplied query to a dedicated servlet, which executes the code and sends back a result.