[Hypercontent-developer] HyperContent 2.0 status
Brought to you by:
alexvigdor
From: Alex V. <av...@co...> - 2004-09-02 16:52:29
|
Hello all, I just wanted to provide a status update on the development of HyperContent 2.0. As of last night, I have created a new CVS module "hypercontent2" which contains the current code and library dependencies for HyperContent 2. This is very much a work in progress; there are no build scripts currently, and I have not checked in any project content to demonstrate the new server. The way to run HyperContent 2 is through a new class, "org.hypercontent.HTTPServer", which uses Tomcat in embedded mode to offer up the server. HyperContent 2 is backwards compatible with version 1.x projects, but the structure has changed: project definition files now reside within the project repository, at "/config/project-definition.xml", and another file "/config/permissions.xml" is used to configure permissions. I will check in sample content in the near future. A quick overview of what is there already in the HyperContent 2.0 code base: a standalone web server using JAAS for authentication, which can serve up static or processed data via "pipelines", and supports advanced browser caching via the HTTP1.1 specification, including support for If-Modified-Since and Etag headers, as well as the basic Last-Modified, Content-Length and Content-Type headers. Projects are mapped to base paths within the servlet context, so that the URL of a file looks something like "http://www.server.edu/hypercontent-servlet/project-mapping/file-dir/ file.ext". Recursive dependency resolution has been implemented, so for example a file which is transformed by an XSL stylesheet which imports another XSL file will be properly recognized as out-of-date if the imported XSL file is changed. Disk caching has been implemented using Berkeley DB Java Edition, so that dynamic processing of a page is only performed once after server startup, until any dependency of that page is modified. As of right now, HyperContent 2 can act as a dynamic web server for any HyperContent 1.x project content. HyperContent 1.x style batch processing has not yet been migrated over, but will be soon. HyperContent 2.0 is introducing a new type of view, which I've taken to calling "modal". Any form of content presentation that was supported under HyperContent 1.x is considered a "static" view, such that it is mapped to a plain URL, and is a candidate for batch processing and disk caching. Modal views of content will be mapped to a "mode" parameter in addition to the basic URL, and will not be capable of being built in a batch request or cached to disk - they are exclusively dynamic. This type of view will be used for management and authoring tools. I am currently working on integrating the Velocity templating engine as an alternative to XSLT, and with either templating language you will be able to import other modal views, such that modal views can be assembled as components and brought together in various combinations. For example, a directory browser will be a single component that might be reused in different contexts, such as a 1.x style management screen, or in an "open file" dialog that might pop-up when you want to insert an image in a WYSIWYG area. We're still a few weeks off from doing an alpha release, but the code is now out there if anyone is interested in taking a peek. I'll be happy to help anyone with further details on the migration process, as needed. Cheers, Alex |