Copyright © 2003-2005, Craig Routledge
This FAQ may be redistributed as long as it is posted unmodified and includes this copyright statement.
This article is provided as is without any express or implied warranties. While every effort has been taken to ensure the accuracy of the information contained in this article, the author assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.
Last updated: July 5, 2005 (revision 5)
Colander is a Java application which acts as a scripted personal Internet agent. That is to say, it interacts with any kind of resource on the Internet and generates results or summaries in a standard format which can then be processed in all kinds of ways. Think of it as your personal assistant.
It can be used like the various programs and portal sites that collect and summarize newsfeeds, but it is more flexible than that. Instead of just newsfeeds, it can take any arbitrary data, and can make sense of it if given a plug-in for that particular resource. Currently, it can understand and parse XML, RDF, RSS, HTML, FTP, and raw streams of bytes. This covers a lot of ground. Since plug-ins can access the Internet, they can be used not only to gather information, but to send information out, trigger events on other servers, and run programs. All of this is done within a controlled security environment.
Users have accounts containing assignments that specify all of the tasks they want performed. They can then log in with a standard web browser and issue a command to perform those assignments and subsequently view the results. All functions, account maintenance, and file transfers can be managed with any web browser. The server is designed to operate on a remote host supporting multiple users, but it is envisioned that most people will run Colander on their own machines.
The motivation behind this project was a long standing desire to automate the various tasks I tend to perform every day. What makes this unique from personalized portal sites is its flexibility and that control remains with the user, providing benefits such as better availability and privacy.
Colander is free software released under the GNU Lesser General Public License.
The latest version of Colander (and this document) may be found at the Colander home page: http://colander.sourceforge.net/.
Probably not. The Java plug-in that comes with your web browser won't do the trick.
You need the full-fledged Java Runtime Environment (JRE). If you want to write code in Java you'll need Java's Software Development Kit (SDK), but that isn't necessary to run Colander.
Check your operating system's facility for installing and removing software to see if the Java Runtime Environment is present. If you don't see it there (or don't know what I'm talking about), use "find" to look for "java.exe" in Microsoft Windows or just plain "java" in UNIX. If it isn't there, you need to download and install it.
At least version 1.4 is required. You can determine what version you have by typing:
java -version |
at the command prompt.
There is more than one distributor of Java implementations, but the author uses the one from Sun Microsystems. Version 1.4 or higher is required for Colander. It is officially, and confusingly, called Java2, even though it is version 1.4. There is a reason, but don't worry about it.
First of all, make sure you have the full Java package actually installed on your machine. See above for details.
Then you will need to check to see if it's a path problem.
This is outlined in the release notes. For example, http://java.sun.com/j2se/1.4.2/install.html for version 1.4.2.
3.1. Why am I getting "Exception in thread "main" java.lang.NoClassDefFoundError: ColanderFrontend" when I try to run Colander?
A) Don't try to run the classes directly. Use the provided "colander" script for UNIX, or "colander.bat" batch file for MS-Windows. These files set the CLASSPATH correctly so that Java can find what it needs.
B) You may have downloaded one of the Colander-source-x.y.z.jar packages.
If you have the SDK, you can compile the code by typing:
javac -source 1.4 main\*.java main\helpers\*.java main\tasks\*.java |
and then try running the server again.
If you only have the Java Runtime Environment installed, it will be far quicker to download the non-source version of Colander than to download the SDK. Trust me.
Colander gets its time from Java, which gets it from the system clock of the computer on which it is running. The clock of the computer running the web browser (if different) does not matter. Assuming the time is correct in the system wide settings, it is most likely a problem with time zones.
First of all, ensure that the time zone selected in your operating system is correct. If it is, then Java is not recognizing it properly. Try a more general time zone setting. You can confirm which time zone Java thinks it's in by running Colander with the debug property set to yes and then looking at the contents of the file "system.log".
For example, on the author's "Fedora Core 2" Linux system the time zone was set as "America/Toronto" which unfortunately Java does not recognize. Java parsed this as "GMT-5" which does not allow for daylight savings time. This caused all times to be out by one hour during the summer. Changing the zone to "EST5EDT" resolved the problem.
Support for viewing these files is not complete with a number of web browsers at this time. Many will show gibberish or claim that perfectly valid files have an error. This is expected to improve over time.
Until then, look in your web browser's menus for the command to view source. This should allow you to look at the file in its raw state. If that option is not available to you, you can always download the file to your own machine and then examine it using any means you like.
4.3. Why does Colander fail with "org.apache.xml.utils.WrappedRuntimeException: Output method is xml could not load output_xml.properties (check CLASSPATH)"?
The problem is that your version of Java doesn't have an sufficiently up-to-date version of the Xalan XML transform code. You need to either upgrade your entire Java installation or grab a Xalan jar file that updates the necessary bits.
The download is available at: http://xml.apache.org/xalan-j/downloads.html
Place the resulting jar file in your endorsed standards directory. The Endorsed Standards Override Mechanism will tell you where the appropriate directory is for your Java installation.
Please see the Xalan FAQ for details.