Filesystem Connector

Download the latest version of the Filesystem connector here.


This is the README for the Krugle reference implementation of a Filesystem Source Control Management Interface
(SCMI).

Requirements:
* Windows, *nix or OS X
* Java 1.5 or greater
* 100 megabytes of free RAM, for most regular sized repositories. The SCMI may use as much as 512
megabytes on larger repositories. If an 'out of memory' condition occurs, the maximum java memory
argument (-Xmx) can be adjusted in scmi-env.bat (windows) and run.sh (*nix).




WINDOWS INSTALLATION



1. Prepare the windows host

* It is recommended that you create a new user specifically for this SCMI application. "filesystemscmi"
is a good choice. This is not necessary, especially if this is not a long term install.
* Verify you have java 1.5 or greater.
 
2. Decompress the contents of the Filesystem SCMI distribution. The path "C:\SCMI\filesystem-scmi\"
is suggested.

3. Edit the settings in <installed location>\filesystem.properties

* It is likely that this file will have unix newlines, so use an editor more advanced than notepad.
Wordpad is sufficient. You must be sure to use "\\" when a "\" character is needed, because java
will assume these strings use character escapes.

* By default, all state files (including checked out working copies) will be placed in the
stateDir subdirectory of the SCMI install path. This can be changed by setting:
scmi.stateDir=C:\\path\\to\\custom\\stateDir
You might want to change this if you're running out of space where the SCMI is installed,
or if the stateDir directory structure is creating filepaths with too many characters for
Windows to support.

4. Edit the settings in <installed location>\run.bat

* Set JAVA to a command which will invoke java 1.5 or greater. "java" will probably work, and you can
test this by running "java -version" from the command line.
* Set SCMI_HOME to the <installed location> where you unzipped the scripts. If you followed the
suggestion from (2) above, this would be "C:\SCMI\filesystem-scmi\"

5. Execute run.bat as the appropriate user.

6. Validate that the SCMI is running correctly by pointing your browser to the following URL:
http://<hostname of SCMI>:<port of SCMI>/status
The port usually is 8765 (or what you set in filesystem.properties).

If this doesn't return a status page the SCMI didn't start up properly. Check the activity log for
details in this case: logs/scmi-activity.log

7. Continue to USAGE instructions below.



*NIX INSTALLATION



1. Prepare the *nix server where the client will be installed

* Verify you have java 1.5 or greater.
* Create a user (e.g. "filesystemscmi") that will be used to run the client. Not necessary but suggested.
 
2. Copy and unpack the contents of the Filesystem SCMI distribution on your server.

Ideally these files should go into /home/<user>, where <user> is the user you created in step 1 above.

For example, if the SCMI archive name is filesystem-scmi-1.0.0-release.zip
and you wanted to have the resulting files located at /home/filesystemscmi/, you would execute:

unzip filesystem-scmi-1.0.0-release.zip
mv filesystem-scmi-1.0.0 /home/filesystemscmi/

3. Change settings in the filesystem.properties file according to your needs.

* By default, all state files (including checked out working copies) will be placed in the
stateDir subdirectory of the SCMI install path. This can be changed by setting:
scmi.stateDir=/path/to/custom/stateDir
You might want to change this if you're running out of space on the mount where the
SCMI is installed.

4. Change settings in the <installed location>/init.d/filesystemscmi.sh file to match your server setup.

* Note that you can start right away by executing bin/run.sh from the scmi folder, but to kill that process
you will need to kill its PID by hand. It is suggested you follow the steps below to properly
install the SCMI application.
* Uncomment and set the USER= parameter at the top of /init.d/filesystemscmi.sh. For the example above, the value
for USER should be set to filesystemscmi.
* Edit the SCMIDIR= parameter, also at the top of the file. This must match the location where
you unpacked the files, for example /home/filesystemscmi/filesystem-scmi-1.0.0
* Make sure MYNAME is unique for every scmi script you may have installed.

5. Set the owner for all the installed files to be the user specified above. For example

chown -R filesystemscmi /home/filesystemscmi/filesystem-scmi-1.0.0

6. Create a symlink from /etc/init.d/filesystemscmi to <installed location>/init.d/filesystemscmi.sh, and
then set this daemon to be run at startup time. For example:

cd /etc/init.d
ln -s /home/filesystemscmi/filesystem-scmi-1.0.0/init.d/filesystemscmi.sh filesystemscmi
chkconfig --levels 35 filesystemscmi on

7. Start the Filesystem SCMI by running the service after installation, for example

service filesystemscmi start

If you experience problems with 'service':

a) Run as root, and if you su to root, make sure you run 'su -' so that paths are setup correctly.
b) If you cannot get the 'service' command to work as intended, you can directly execute 'run.sh'
but this must be done as the SCMI user, and not as root. The process will have to be killed with
the 'kill' command.

Then you should watch the log file located at <installed location>/logs/scmi-activity.log to
ensure the service has started up properly.

8. Validate that the SCMI is running correctly by pointing your browser to the following URL:
http://<hostname of SCMI>:<port of SCMI>/status
The port usually is 8765 (or what you set in filesystem.properties).

If this doesn't return a status page the SCMI didn't start up properly. Check the activity log for
details in this case: logs/scmi-activity.log



USAGE



1. Once the SCMI script is setup correctly, navigate to your Krugle Enterprise Search
Appliance (KE) admin page. Typically this is http://<hostname>:8080/projects/project_listing.html

2. Create a new SCM repository of the SCMI type.

* The hostname should be set the hostname or IP address of the machine hosting this SCMI.
* The scm name can be anything, "Filesystem scmi" is a good start.
* The username and password are blank.
* The port should be set to 8765 (or what you set in filesystem.properties), and the protocol set
to to HTTP.
* The path should be set to /repository
* The project source box should be unchecked unless you know what you're doing.

3. Create a new project or edit an existing one.

* Add a SCM location for the SCM repository you just created in step 2.

* The location can be one of the following:
a) An absolute path (on the SCMI server filesystem) of a project that should be crawled
- On windows this might be "C:iles\datafiles"
- On *nix this might be "/home/filesystemscmi/data/datafiles"
b) An absolute path to a .tar.gz, .zip or .jar file. The contents of the archive file will be crawled.
c) An http address to a .tar.gz, .zip or .jar file.

* Leave the parameters field blank.
 
 
For more information on setting up Krugle Enterprise with these SCMI clients, please see
the Krugle Enterprise Administration Guide and the SCMI SDK documentation.



LOGGING


If you wish you may change log settings by editing the log4j.properties file. The first line currently looks like:

log4j.rootLogger = info, ActivityRFA, ErrorRFA

You can increase the amount of information being logged by changing "info" to "debug". Note that this
change must be made before the SCMI client is started.