|
This page last changed on Jan 16, 2008 by amitku.
Current issues / needs
- The old version of appfuse that we were using didn't use Maven (to manage dependencies) and used an older version of Spring (the java framework that provides the web application functionality.) Maven should, in theory, simplify dependency management. Upgrading to the latest version of Spring should help with maintenance and performance.
- We would like to provide both XML and JSON interfaces to data, returned to the client via REST calls (XMLHttpRequest). We would ideally like to provide these by using java annotations. Java annotations would simplify ongoing work on MONK, making it easier to add new middleware services in future. Both the older and current versions of appfuse, use a web services package called XFire, however, which doesn't provide XML/JSON REST services using annotations.
- We now need the user management stuff, including what we had before for project management, but also need new project / workset / ui preference management.
Options
- We could use the version of AppFuse that we had been using, and write new Views for returning JSON and XML for any new web services (RESTful.) And add the new user management functionality.
Upside: Less developer time for now (probably).
Downside: Less maintainable: no Maven for dependency management, no newer versions of libraries like Spring. No annotations for web services.
- Take some of the work we did in the old AppFuse version, and bring it into the latest version of AppFuse. Specifically, bring in the user management stuff that we had added for managing projects.
Upside: We get Maven and latest libraries.
Downside: We don't get annotations, but they could be brought in later if we decide to bring CXF into AppFuse later. Also, though, more work for now to create the views for each calls, i.e., one JSON and one XML view for each. We may be able to use XStream, but it isn't clear that it could work, and for the same reason that we aren't exploring CXF (uncertain time frames for an uncertain outcome) we probably won't explore XStream initially.
- We could bring in the user management stuff from appfuse to the cxf version that James created.
Upside: We'd get Maven, latest libraries, annotations for web services including JSON conversion out of the box.
Downside: Unclear how long it would take to bring the user management stuff (Acegi, Hibernate configuration, user specific java classes) into CXF. Also unclear how configurable is the XML returned from annotations, e.g., specifying elements vs. attributes for java fields when serializing them to xml.
- We could help upgrade appfuse to cxf. The creator of appfuse, matt raible, has offered to help with this, and so has some other guy.
Upside: We'd get Maven, latest libraries, annotations for web services including JSON conversion out of the box, and we'd get all the other benefits of AppFuse, like Clickstream.
Downside: Unclear how long the upgrade would take. Also unclear how configurable is the XML returned from annotations, e.g., specifying elements vs. attributes for java fields when serializing them to xml.
|