|| Vicaya 0.2.0 Developer Guide || Online: Download || Guides: User Creator Developer ||

Vicaya offers an advanced search framework capable of running from a CDROM with no installation on all platforms.

Documentation

Introduction

Documentation for a software developer including standard development environment, checking out source code, dependencies, and architecture description. It is assumed that a developer is familiar with both the User Guide and the Content Creator Guide and is generally familiar with Vicaya from these perspectives.

Project page

Vicaya is undergoing rapid development. To get involved with Vicaya development, you will need the Java 1.4.2 SDK (Download J2SE SDK), Apache Ant, and an SVN Client (such as TortoiseSVN).

There are four modules, launcher, search, vendor, and vicaya. The first three build targets which are included in the vicaya module, so it is not necessary to checkout all modules, unless you intend to modify a particular module.

Checkout the Source

svn co https://svn.sourceforge.net/svnroot/vicaya/trunk vicaya

Download 3rdParty Dependencies

You may want to obtain the 3rdParty dependencies before running ant. 3rdParty-0.1.3.zip or later can be found with the development releases. Simply place the expanded 3rdParty' directory in your home directory (such as ~/3rdParty . On windows: C:\Documents and Settings\yourname\3rdParty or unix: /home/username/3rdParty -- previous version of Vicaya (before 0.1.4) placed 3rdParty in the dev directory). This will save you time (and bandwidth) during the build process.

Download Dependencies with Ant

If you already have a directory named '3rdParty', make sure it is located in your home directory, otherwise, the next step will download many dependency packages from the net.

cd vicaya
ant download

You will likely see something that looks like this:

$ ant download
Buildfile: build.xml

download:
      [get] Getting: http://genaud.net/2006/vicaya/bin/apache/nutch-0.7.2.tar.gz
      [get] To: C:\alex\vicaya\3rdParty\nutch-0.7.2.tar.gz
      [get] ....................................................
      [get] ....................................................
      [get] ....................................................
      [get] ....................................................
      [get] ....................................................
      [get] ....................................................
      [get] ....................
      [get] last modified = Sun Mar 26 01:24:09 CET 2006
      [get] Getting: http://genaud.net/2006/vicaya/bin/accesstoinsight/ati-2006-05-05-17.zip
      [get] To: C:\alex\vicaya\3rdParty\ati-2006-05-05-17.zip
      [get] local file date : Sun Mar 26 11:57:32 CEST 2006
      [get] Not modified - so not downloaded

BUILD SUCCESSFUL
Total time: 19 minutes 43 seconds

If that didn't work, you should make sure your Java environment and Ant are properly configured and that Ant can make the HTTP requests (through a firewall and/or proxy, etc). If all is well, we shall continue to build:

Build with Ant

The default build does not include the various JRE's (for many platforms).

ant clean build

A full build (buildfull) includes all the tested JRE's to be included on a cross-platform CDROM.

ant clean buildfull

Once you've downloaded files, you might find the quick build convenient (buildquick) which skips the download and expansion steps. NB: These scripts will not download the same file twice, but the timestamp checks and unzipping, untaring, unwaring stuff does take time.

ant clean buildquick

Vicaya Modules

Vicaya has recently been partitioned into several modules and the dependencies have been slightly simplified. The Launcher.jar (which bootstraps the server) has a separate development path as well as search.jar (library for a searchable web application). There is now a vendor module. Previously vicaya downloaded many dependencies and build everything from scrath. This made structure modifications and updates easier (if one is intimately familiar with the build) but complicated general and routine builds.

Vicaya currently assumes a build of the accesstoinsight content, though this will soon become a separate optional module. Don't let that confuse you. I expect soon, this documentation will be the default searchable content.

To checkout everything, it is recommended to create a base directory (vicayadev), and checkout modules at its base:

$ mkdir vicayadev
$ cd vicayadev
$ svn co https://svn.sourceforge.net/svnroot/vicaya/launcher/trunk launcher
$ svn co https://svn.sourceforge.net/svnroot/vicaya/search/trunk search
$ svn co https://svn.sourceforge.net/svnroot/vicaya/trunk vicaya

While vicaya already includes copies of stable targets of Launcher.jar and search.jar, a complete build might look something like this:


$ cd vicayadev

$ cd launcher
$ ant
$ cd ..

$ cd search
$ ant
$ cd ..

$ cd vicaya
$ cp ../launcher/Launcher.jar src/main/resources/vicaya/Launcher.jar
$ cp ../search/search.jar src/main/resources/vicaya/nutch/search.jar
$ ant

$ cd dist/vicaya-0.2.0/vicaya

*** start the server ***

$ java -jar Launcher.jar &

*** wait for Vicaya to start ***

$ sh start_crawl.sh

References

Origins

The Vicaya project began as a response to a request at AccessToInsight.org for a search engine that could run from a CD-ROM. The goal is to be able to duplicate the website in a CD-ROM including a search engine. However, the Vicaya project is designed to support any offline website. In fact, it might be possible to support any read-only J2EE web application in addition to search (I'd love to learn about it and would be happy to offer suggestions).

|| Vicaya 0.2.0 Developer Guide || Online: Download || Guides: User Creator Developer ||