(Draft)

**NCICB BioPortal Installation Manual**

1.0

Revision Document History

  ----------- --------- --------------------------------- --------------------
  Date        Version   Description                       Authors

  4/24/2007   1.0       First draft                       Kim Ong, Iris Guo
  ----------- --------- --------------------------------- --------------------

Table of Contents

1\. Introduction [4](#introduction)

1.1 Purpose [4](#purpose)

2\. System Requirements [5](#system-requirements)

2.1 Operating System [5](#operating-system)

Linux and Windows XP. [5](#redhat-linux-and-windows-xp.)

2.2 Software (Technology Stack) [5](#software-technology-stack)

2.2.1 The Java Development Kit (Version 1.5 or higher).
[5](#the-java-development-kit-version-1.5-or-higher.)

2.2.2 The Apache Ant Java-based build tool.
[5](#the-apache-ant-java-based-build-tool.)

2.2.3 JUnit 4.x or higher for running tests.
[5](#junit-4.x-or-higher-for-running-tests.)

2.2.4 JBoss Application Server 4.0.5 GA.
[5](#jboss-application-server-4.0.5-ga.)

2.2.5 Apache2 Http Server [6](#apache2-http-server)

2.2.6 Database Server. [6](#database-server.)

2.2.7 Graphviz. [6](#graphviz.)

2.3 Server Hardware [6](#server-hardware)

2.3.1 Server: \<\<type, model, ...\>\> [6](#server-type-model)

2.3.2 Minimum processor speed: [6](#minimum-processor-speed)

2.3.3 Minimum memory: [6](#minimum-memory)

2.3.4 Minimum local drive space: [6](#minimum-local-drive-space)

2.4 Storage [6](#storage)

2.4.1 Expected file server disk storage (in MB):
[6](#expected-file-server-disk-storage-in-mb)

2.4.2 Expected database storage (in MB):
[6](#expected-database-storage-in-mb)

2.4.3 Expected ftp storage (in MB): [6](#expected-ftp-storage-in-mb)

2.4.4 Expected media/image storage (in MB):
[6](#expected-mediaimage-storage-in-mb)

2.5 Load Balancing/Fault Tolerance [6](#load-balancingfault-tolerance)

2.5.1 Does the application support load balancing?
[6](#does-the-application-support-load-balancing)

2.5.2 Implement load balancing -- No [6](#implement-load-balancing-no)

2.6 Networking [6](#networking)

2.6.1 Any application specific port assignments?
[6](#any-application-specific-port-assignments)

2.6.2 Any additional configuration? [6](#any-additional-configuration)

2.7 Additional Notes [6](#additional-notes)

3\. Installation [7](#installation)

3.1 Accessing BioPortal Source Code
[7](#accessing-bioportal-source-code)

3.2 Source Structures [8](#source-structures)

3.3 Installation and Configuration of Required Components
[9](#installation-and-configuration-of-required-components)

3.4 Build and Deploy BioPortal [10](#build-and-deploy-bioportal)

3.5 Running BioPortal [11](#running-bioportal)

4\. Acceptance [12](#acceptance)

5\. Appendices [13](#appendices)

5.1 Appendix A. Sample build.properties
[13](#appendix-a.-sample-build.properties)

5.2 Appendix B. ncbo_tables.sql [17](#appendix-b.-ncbo_tables.sql)

5.3 Appendix C. build.properties [27](#appendix-c.-build.properties)

5.4 Appendiex D. ncbo.properties [31](#appendiex-d.-ncbo.properties)

5.5 Appendiex E. MySqlSequenceHandler.java
[33](#appendiex-e.-mysqlsequencehandler.java)

5.6 Appendiex F. BioPortal Source Tree
[36](#appendiex-f.-bioportal-source-tree)

# Introduction

## Purpose

This manual is developed based on the deployment and build instructions
published at
<http://www.bioontology.org/docs/bioportal/development/build_deploy.html>
by the National Center for Biomedical Ontology (NCBO). The purpose of
this manual is to provide NCICB administrators, or other potential
users, of the BioPoral web application with a reference for installing
the application under a MySQL and Linux hosting environment.

# System Requirements

## Operating System

### RedHat Linux and Windows XP.  {#redhat-linux-and-windows-xp. .unnumbered}

## Software (Technology Stack)

### The Java Development Kit (Version 1.5 or higher).

### The Apache Ant Java-based build tool. 

The download site is: <http://archive.apache.org/dist/ant/binaries/> The
download includes installation instructions for all platforms. (Note:
The Ant build script distributed with BioPortal source code was
developed with Ant version 1.6.2.)

### JUnit 4.x or higher for running tests. 

Download JUnit\'s from the web site <http://www.junit.org/index.htm>.

### JBoss Application Server 4.0.5 GA. 

The JBoss Application Server 4.0.4 GA installer is located in the
BioPortal repository under the conf directory. You can download 4.0.5 GA
directly from the JBoss web site <http://labs.jboss.com/portal/>. (Note:
JBoss has only been certified by NCBO to run on JBoss Application Server
4.0.4 GA.)

### Apache2 Http Server 

See Apache\'s web site to download [Apache Http
Server](http://httpd.apache.org/) from Apache site
<http://httpd.apache.org/>. The version of Apache you install must
support Tomcat connector (mod_jk 1.2). See the Apache Tomcat web site
http://tomcat.apache.org/download-connectors.cgi to download [Tomcat
Connectors](http://tomcat.apache.org/download-connectors.cgi).

### Database Server. 

NCBO's BioPortal\'s production environment uses
[Oracle](http://www.oracle.com/) 10g. According to NCBO, although not
tested by NCBO, BioPortal is architected to use other database
management systems (DBMS) such as - [MySQL](http://mysql.com/) 4.x or
5.x or [PostgreSQL](http://www.postgresql.org/) 7.x, 8.x.

### Graphviz. 

See the Graphviz site http://www.graphviz.org/Download.php to download
[Graphviz](http://www.graphviz.org/).

## Server Hardware

### Server: \<\<type, model, ...\>\>

### Minimum processor speed:

### Minimum memory:

### Minimum local drive space:

## Storage

### Expected file server disk storage (in MB):

### Expected database storage (in MB):

### Expected ftp storage (in MB):

### Expected media/image storage (in MB):

## Load Balancing/Fault Tolerance 

### Does the application support load balancing?

No

### Implement load balancing -- No

## Networking

### Any application specific port assignments?

### Any additional configuration?

## Additional Notes 

# Installation

## Accessing BioPortal Source Code

The source code for BioPortal is housed in a
[Subversion](http://subversion.tigris.org/) repository, which is an
open-source version control system. Everyone has been granted read
access to the BioPortal Subverison repository.

If you just want to **browse** the latest version of the code or
download a few individual files, the best tool for this is the Web based
[ViewVC for Subversion](http://smi-protege.stanford.edu/svn/). You may
also go directly to the public repository via any Web browser:

<http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk>.

If instead, you would like to **download** the latest version of the
source code, you need a Subversion client. The [Subversion
Book](http://svnbook.red-bean.com/) has a [list of known
clients](http://svnbook.red-bean.com/en/1.1/apd.html#svn-ap-d-sect-1).
One popular Subversion client is
[TortoiseSVN](http://tortoisesvn.tigris.org/). The proper URL to check
out BioPortal source code is:

http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk.

To get the source code from Subversion and successfully use the Ant
build file, you must issue the following command -

svn checkout http://smi-protege.stanford.edu/repos/cbio/ncbo/trunk
\<your-destination-dir\>

## Modify BioPortal Source Code

The following modifications have been made to BioPortal code base to
make BioPortal cojpatible with MySQL:

1.  Add the source code MySqlSequenceHandler.java as shown in Appendix E
    to
    \<NCBO_INSTALLATION_DIRECTORY\>/ncbo/trunk/src/org/ncbo/stanford/server/session
    directory (Refer to Appendix F for BioPortal source structures).

2.  Change 'Destination" to "destination" in the following statement
    found in several MDBs:

> \@ActivationConfigProperty(propertyName=\"destination\",

3.  Disable Dead Letter Queue (DLQ) related activation configuration
    statements in several MDBs; for example:

> \@Consumer(activationConfig =
>
> {
>
> \@ActivationConfigProperty(propertyName=\"destinationType\",
>
> propertyValue=\"javax.jms.Queue\"),
>
> \@ActivationConfigProperty(propertyName=\"destination\",
>
> propertyValue=\"queue/convertpojo\"),
>
> \@ActivationConfigProperty(propertyName=\"useDLQ\",
> propertyValue=\"false\") /\*,
>
> \@ActivationConfigProperty(propertyName=\"DLQMaxTimesRedelivered\",
>
> propertyValue=\"0\"),
>
> \@ActivationConfigProperty(propertyName=\"MaxTimesRedelivered\",
>
> propertyValue=\"0\"),
>
> \@ActivationConfigProperty(propertyName=\"maxRedeliverAttemptCount\",
>
> propertyValue=\"0\"),
>
> \@ActivationConfigProperty(propertyName=\"MaxPoolSize\",
> propertyValue=\"1\"),
>
> \@ActivationConfigProperty(propertyName=\"MaxMessages\",
> propertyValue=\"1\")
>
> \*/
>
> })

## Source Structures

The pertinent files and directories in the source structure are -

  --------------------------- --------------------------------------------------
  build.xml                   Ant build file

  build.properties.template   Properties file containing variables used by the
                              Ant build file

  src                         Directory containing BioPortal source code

  lib                         Directory containing dependent libraries

  conf                        Directory containing configuration files

  webapp                      Directory containing client side web application
                              files

  docs                        Directory containing BioPortal documentation
  --------------------------- --------------------------------------------------

Refer to Appendix F for a listing of source code. All other directories
are not pertinent to building and deploying BioPortal. A sample
build.properties file is provided in Appendix A.

## Installation and Configuration of Required Components

1.  Install the Java Development Kit (version 1.5 or higher). Make sure
    to set the JAVA_HOME environment variable to the installation
    directory of your JDK.

2.  Install Apache Ant.

3.  Ensure junit-\*.jar is available to Apache Ant. One solution is to
    copy the junit-\*.jar to \<APACHE_ANT_INSTALLATION_DIRECTORY\>/lib
    directory.

4.  Install JBoss Application Server *using the ejb3 option* (accept all
    other defaults). Select MySQL as the default database.

5.  Modify the JBoss configuration file
    \<JBOSS_INSTALLATION_DIRECTORY\>/
    server/default/conf/standardjboss.xml, to disable Dead Letter Queue
    (DLQ) as:

> \<!\--
>
> \<DLQConfig\>
>
> \<DestinationQueue\>queue/DLQ\</DestinationQueue\>
>
> \<MaxTimesRedelivered\>10\</MaxTimesRedelivered\>
>
> \<TimeToLive\>0\</TimeToLive\>
>
> \</DLQConfig\>
>
> \--\>

6.  Copy xercesImpl.jar from
    \<JBOSS_INSTALLATION_DIRECTORY\>/lib/endorsed to
    \<APACHE_ANT_INSTALLATION_DIRECTORY\>/lib directory.

7.  Install and configure your RDBMS. Follow the instructions for your
    specific RDBMS in order to set up the database with a user and
    password that will be used as the BioPortal data store. Note the
    JDBC connect string, the database user and the database user
    password as this information is required for building and deploying.
    Copy mysql-connector-java-3.1.12-bin.jar to
    \<JBOSS_INSTALLATION_DIRECTORY\>/server/default/lib.

8.  The original script for creating ncbo database is in
    /conf/ncbo_tables.sql. This script has been modified to support
    MySQL database (See Appendix B). Run this script to setup tables and
    load data into your MySQL database.

9.  Install Apache2 Http Server.

10. If your server doesn\'t come with mod_jk already installed/enabled,
    aquire the correct JK 1.2 binary for your system and Apache Http
    Server at <http://tomcat.apache.org/download-connectors.cgi>. Rename
    the binary to mod_jk.so and place it in
    \<APACHE_INSTALLATION_DIRECTORY\>/modules. Add the following line to
    httpd.conf -

> LoadModule jk_module modules/mod_jk.so

11. Install Graphviz. Specifically, BioPortal executes the dot tool. The
    location of the dot tool must be in the system path as BioPortal
    invokes dot without path information.

## Build and Deploy BioPortal

1\. Rename build.properties.template to build.properties. The
\".template\" extension has been added so that each time source code is
downloaded, the build.properties file is not overwritten which causes
user defined settings to be lost.

2\. Modify build.properties to reflect the appropriate environment
settings. Set the following items -

+-----------------------+----------------------------------------------+
| SERVER_NAME           | Server name of the Apache web server         |
+-----------------------+----------------------------------------------+
| jboss.dir             | Installation directory of JBoss              |
+-----------------------+----------------------------------------------+
| ncbo.dir              | BioPortal installation directory. Location   |
|                       | where BioPortal configuration files,         |
|                       | ontology files, LexGrid indices, etc. will   |
|                       | be stored. These directories need to be able |
|                       | to be accessed by Apache. In addition, these |
|                       | directories need to be readable and          |
|                       | writeable by the JBoss user.                 |
+-----------------------+----------------------------------------------+
| datasource            | MySqlDS \[MySQL\]                            |
|                       |                                              |
|                       | PostgresDS \[Postgres\]                      |
|                       |                                              |
|                       | OracleDS \[Oracle\]                          |
+-----------------------+----------------------------------------------+
| NCBO_S                | not yet implemented \[MySQL\]                |
| EQUENCE_HANDLER_CLASS |                                              |
|                       | org.ncbo.sta                                 |
|                       | nford.server.session.PostgresSequenceHandler |
|                       | \[Postgres\]                                 |
|                       |                                              |
|                       | org.ncbo.s                                   |
|                       | tanford.server.session.OracleSequenceHandler |
|                       | \[Oracle\]                                   |
+-----------------------+----------------------------------------------+
| NCBO_DATA             | JDBC connection to RDBMS. Substitute the     |
| SOURCE_CONNECTION_URL | appropriate values in the example connection |
|                       | strings below for the specific RDBMS.        |
|                       |                                              |
|                       | jdbc:mysql://hostname:port/dbname \[MySQL\]  |
|                       |                                              |
|                       | jdbc:postgresql://hostname:port/dbname       |
|                       | \[Postgres\]                                 |
|                       |                                              |
|                       | jdbc:oracle:thin:@hostname:port:sid          |
|                       | \[Oracle\]                                   |
+-----------------------+----------------------------------------------+
| NCBO                  | Database user                                |
| _DATASOURCE_USER_NAME |                                              |
+-----------------------+----------------------------------------------+
| NCB                   | Database user password                       |
| O_DATASOURCE_PASSWORD |                                              |
+-----------------------+----------------------------------------------+
| N                     | mySQL \[MySQL\]                              |
| CBO_JAWS_TYPE_MAPPING |                                              |
|                       | PostgresSQL \[Postgres\]                     |
|                       |                                              |
|                       | Oracle8 \[Oracle\]                           |
+-----------------------+----------------------------------------------+
| LEXGRID_DB_DRIVER     | org.gjt.mm.mysql.Driver \[MySQL\]            |
|                       |                                              |
|                       | org.postgresql.Driver \[Postgres\]           |
|                       |                                              |
|                       | oracle.jdbc.driver.OracleDriver \[Oracle\]   |
+-----------------------+----------------------------------------------+
| NCBO_MAIL_POP3_HOST   | POP3 mail server                             |
+-----------------------+----------------------------------------------+
| NCBO_MAIL_SMTP_HOST   | SMTP gateway server                          |
+-----------------------+----------------------------------------------+
| NCBO_MAIL_FROM        | Email address mail will be sent from         |
+-----------------------+----------------------------------------------+
| NCBO_ADMIN_EMAIL      | Email address to send pending submission and |
|                       | other administrative notices to              |
+-----------------------+----------------------------------------------+

> **A user with administrative privileges in the system will be created
> automatically.** By default this user is admin with a password of
> changeme. To change this, set NCBO_ADMIN_USERID and
> NCBO_ADMIN_PASSWORD in build.properties. Note passwords should be 8
> characters or more in length.

3\. Modify ncbo.properties file. An example of this file is given in
Appendix D.

4\. Run ant deployear to build and deploy BioPortal.

## Running BioPortal

1\. Modify the JBoss Application Server run.sh/run.bat file to include
command line parameters. Add

> \"-DLG_CONFIG_FILE=\<NCBO_INSTALLATION_DIRECTORY\>/config/config.props\"\
> \"-DNCBO_CONFIG_FILE=\<NCBO_INSTALLATION_DIRECTORY\>/config/ncbo.properties\"
>
> before -classpath in the line after \"# Execute the JVM\" in run.sh or
> :RESTART in run.bat. The command line parameters are enclosed in
> quotes (\") for directory names with spaces. In addition, even though
> the above line may display on multiple lines due to HTML formatting,
> it is actually a single line. Start JBoss.
>
> For example:
>
> \"%JAVA%\" %JAVA_OPTS% -Xms512m -Xmx512m -XX:PermSize=256m
> \"-Djava.endorsed.dirs=%JBOSS_ENDORSED_DIRS%\"
> \"-DLG_CONFIG_FILE=C:/BioPortal3/ncbo/trunk/config/config.props\"
> \"-DNCBO_CONFIG_FILE=C:/BioPortal3/ncbo/trunk/config/ncbo.properties\"
> -classpath \"%JBOSS_CLASSPATH%\" org.jboss.Main %\*

2\. Start Apache.

3\. Access BioPortal at http://\<SERVER_NAME\>/ncbo/faces/index.xhtml

# Acceptance

  ----------------------------------- -----------------------------------
  Project Lead ( )                    Project Coordinator -- NCICB ( )

  Systems Team                        SCM Administrator
  ----------------------------------- -----------------------------------

#   {#section .unnumbered}

# Appendices

## Appendix A. Sample build.properties 

\# build and deploy properties

\# Server name

SERVER_NAME=localhost

\# JBoss installation directory

jboss.dir=C:/jboss-4.0.5.GA

\# Apache HTTP server directory

apache.doc.dir=C:/Apache2/htdocs

\# NCBO installation directories

ncbo.dir=C:/BioPortal3/ncbo/trunk

#ncbo.files.dir=\${ncbo.dir}/files

ncbo.files.dir=\${apache.doc.dir}/files

ncbo.config.dir=\${ncbo.dir}/config

ncbo.docs.dir=\${ncbo.dir}/docs

#ncbo.graphs.app.dir=\${ncbo.dir}/graphs/app

#ncbo.graphs.webservice.dir=\${ncbo.dir}/graphs/webservice

ncbo.graphs.app.dir=\${apache.doc.dir}/graphs/app

ncbo.graphs.webservice.dir=\${apache.doc.dir}/graphs/webservice

ncbo.lexgrid.dir=\${ncbo.dir}/lexgrid

ncbo.tmp.dir=\${ncbo.dir}/tmp

\# Due to Ant filtersfile not doing in-file property expansion the
following properties

\# must be defined using @

\# The values for the subdirctories after \@ncbo.dir@

\# must be the same as the subdirectories above for the corresponding
values

\# NCBO_FILES_DIR=@ncbo.dir@/files

NCBO_FILES_DIR=@apache.doc.dir@/files

NCBO_CONFIG_DIR=@ncbo.dir@/config

NCBO_DOCS_DIR=@ncbo.dir@/docs

#NCBO_GRAPHS_APP_DIR=@ncbo.dir@/graphs/app

#NCBO_GRAPHS_WEBSERVICE_DIR=@ncbo.dir@/graphs/webservice

NCBO_GRAPHS_APP_DIR=@apache.doc.dir@/graphs/app

NCBO_GRAPHS_WEBSERVICE_DIR=@apache.doc.dir@/graphs/webservice

NCBO_LEXGRID_DIR=C:/LexBIG

\# HTTP URL used by code to determine location of documentation. The
part after the domain name must match the

\# alias in static-content.inc for docs

NCBO_APACHE_DOCS_ALIAS=/docs

#NCBO_APACHE_FILES_ALIAS=C:/Apache2/htdocs/files

NCBO_APACHE_FILES_ALIAS=/files

#NCBO_APACHE_GRAPHS_APP_ALIAS=//graphs/app

#NCBO_APACHE_GRAPHS_WEBSERVICE_ALIAS=//graphs/webservice

NCBO_APACHE_GRAPHS_APP_ALIAS=/graphs/app

NCBO_APACHE_GRAPHS_WEBSERVICE_ALIAS=/graphs/webservice

\# HTTP URL used for webservice deployment

NCBO_WEBSERVICEBEAN =
http://localhost/ncboservicebeans/NCBOWebserviceBean

\# Database and database releated settings

\# Class which implements sequence generator for specific database

\# not yet implemented \[MySQL\]

\# org.ncbo.stanford.server.session.PostgresSequenceHandler for
\[Postgres\]

\# org.ncbo.stanford.server.session.OracleSequenceHandler for \[Oracle\]

NCBO_SEQUENCE_HANDLER_CLASS=org.ncbo.stanford.server.session.MySqlSequenceHandler

\# JBoss datasource configuration - corresponds to ncbo-ds.xml

\# MySqlDS \[MySQL\]

\# PostgresDS \[Postgres\]

\# OracleDS \[Oracle\]

datasource=MySqlDS

NCBO_DATASOURCE=java:/MySqlDS

\# JDBC connect string

\# jdbc:mysql://hostname:port/dbname \[MySQL\]

\# jdbc:postgresql://hostname:port/dbname \[Postgres\]

\# jdbc:oracle:thin:@hostname:port:sid \[Oracle\]

NCBO_DATASOURCE_CONNECTION_URL=jdbc:mysql://localhost:3306/ncbo

NCBO_DATASOURCE_USER_NAME=root

NCBO_DATASOURCE_PASSWORD=password

NCBO_JAWS_TYPE_MAPPING=mySQL

\# Login module

\# Corresponds to login-config.xml

\# Database parameters for where login information stored

NCBO_LOGIN_MODULE_MANAGED_CONNECTION=jboss.jca:service=LocalTxCM,name=MySqlDS

\# Mail

\# POP3 mail server

NCBO_MAIL_POP3_HOST=pop3.host.domain

\# SMTP gateway server

NCBO_MAIL_SMTP_HOST=smtp.host.domain

\# Email address mail will be sent from

NCBO_MAIL_FROM=guoi@mail.nih.gov

\# Email address to send pending submissions and other administrative
notices

NCBO_ADMIN_EMAIL=guoi@mail.nih.gov

NCBO_ADMIN_USERID=admin

NCBO_ADMIN_PASSWORD=admin

\# Sourceforge - used for sourceforge pull from obo.sourceforge.net

NCBO_SOURCEFORGE_CHECKOUT_DIR=@ncbo.dir@/cvscheckout

NCBO_SOURCEFORGE_ONTOLOGIES_TEXT=@ncbo.dir@/cvscheckout/obo/website/cgi-bin/ontologies.txt

\# Remote access

NCBO_JAVA_NAMING_FACTORY_INITIAL=org.jnp.interfaces.NamingContextFactory

NCBO_JAVA_NAMING_FACTORY_URL_PKGS=org.jnp.interfaces

NCBO_JAVA_NAMING_PROVIDER_URL=jnp://localhost:1099

NCBO_JAVA_SECURITY_AUTH_LOGIN_CONFIG=c:/jboss-4.0.5.GA/client/auth.conf

\# Cache

\# Cache location

NCBO_JCS_CACHE_LOCATION=@ncbo.dir@/cache

\# Cache top nodes (true/false). True improves performance, slows
application server startup time.

NCBO_CACHE_TOP_NODES=false

\# Graphing

\# Font used during graph generation

NCBO_GRAPHVIZ_FONT_NAME=Courier

\# Font size used during graph generation

NCBO_GRAPHVIZ_FONT_SIZE=9

\# Searching

\# Search fetch limit. Higher limit slows down search results.

NCBO_SEARCH_FETCH_LIMIT=1000

\# Location where files are temporarily uploaded during submission
process

NCBO_FILE_UPLOAD_DIR=@ncbo.dir@/tmp

\# Used for NCBO library business logic

\# Setting to true causes submissions to be held in

\# \"pending submissions\" list until librarian review

\# Setting to false causes submissions to be put into the

\# library immediately

NCBO_LIBRARY_REVIEW_MODE=false

\# Placeholder for future functionality

NCBO_REMEMBER_ME_ENABLED=false

\# For NCBO internal testing purposes

NCBO_VERSION=1.0

\# Setting NCBO_PRODUCTION_RELEASE to true will prevent version number
from appearing in header

NCBO_PRODUCTION_RELEASE=true

\# LexGrid parameters

\# token substitutions

#\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\--

\# \*\*\* Important \*\*\*

\# Refer to conf/config.props for a complete description of each of the
below LexGrid configuration parameters

LEXGRID_LG_BASE_PATH=

#Lexgrid jar file location. Recommended to be jboss lib

LEXGRID_JAR_FILE_LOCATION=c:/jboss-4.0.5.GA/server/default/lib

LEXGRID_INDEX_LOCATION=@NCBO_LEXGRID_DIR@/resources/lbIndex

LEXGRID_REGISTRY_FILE=@NCBO_LEXGRID_DIR@/resources/config/registry.xml

LEXGRID_MAX_CONNECTIONS_PER_DB=50

LEXGRID_CACHE_SIZE=500

LEXGRID_ITERATOR_IDLE_TIME=30

LEXGRID_MAX_RESULT_SIZE=5000

LEXGRID_SINGLE_DB_MODE=true

LEXGRID_DB_URL=@NCBO_DATASOURCE_CONNECTION_URL@

LEXGRID_DB_PREFIX=lb1

LEXGRID_DB_PARAM=

\# Lexgrid DB Driver

#org.gjt.mm.mysql.Driver \[MySQL\]

#org.postgresql.Driver \[Postgres\]

#oracle.jdbc.driver.OracleDriver \[Oracle\]

LEXGRID_DB_DRIVER=com.mysql.jdbc.Driver

LEXGRID_DB_USER=@NCBO_DATASOURCE_USER_NAME@

LEXGRID_DB_PASSWORD=@NCBO_DATASOURCE_PASSWORD@

LEXGRID_LOG_FILE_LOCATION=@NCBO_LEXGRID_DIR@/logs

LEXGRID_API_LOG_ENABLED=true

LEXGRID_DEBUG_ENABLED=true

LEXGRID_LOG_CHANGE=5

LEXGRID_ERASE_LOGS_AFTER=5

LEXGRID_EMAIL_ERRORS=false

LEXGRID_SMTP_SERVER=mailfwd.nih.gov

[LEXGRID_EMAIL_TO=guoi@mail.nih.gov](mailto:LEXGRID_EMAIL_TO%3Dguoi@mail.nih.gov)

## Appendix B. ncbo_tables.sql

CREATE TABLE SEQUENCE (ID INT NOT NULL);

insert into sequence values (0);

CREATE TABLE NCBOONTOLOGYACCESS

( ID INT NOT NULL,

userId INT,

metaDataInfoId INT,

CONSTRAINT NCBOONTOLOGYACCESS_PK PRIMARY KEY (ID)

) ;

CREATE TABLE NCBOUSER

( ID INT,

LOGIN VARCHAR(50),

PASSWORD VARCHAR(50),

EMAIL VARCHAR(100),

FIRSTNAME VARCHAR(50),

LASTNAME VARCHAR(50),

PHONE VARCHAR(30),

VALIDATETOKEN VARCHAR(20),

ISVALIDATED CHAR(1) DEFAULT \'N\',

PRIMARY KEY (ID)

) ;

CREATE TABLE NCBOROLE

( ID INT,

NAME VARCHAR(100),

DESCRIPTION VARCHAR(255),

PRIMARY KEY (ID)

) ;

CREATE UNIQUE INDEX NCBOROLE_INDEX ON NCBOROLE (NAME) ;

CREATE TABLE NCBOCATEGORIES

( ID INT NOT NULL,

NAME VARCHAR(100) NOT NULL,

PARENTCATEGORYID INT,

CONSTRAINT NCBOCATEGORIES_PK PRIMARY KEY (ID),

CONSTRAINT NCBOCATEGORIES_NCBOCATEGO_FK1 FOREIGN KEY (PARENTCATEGORYID)

REFERENCES NCBOCATEGORIES (ID)

) ;

CREATE TABLE NCBOFILE

( ID INT NOT NULL,

USERID INT NOT NULL,

CREATIONDATE TIMESTAMP (6),

FILEPATH VARCHAR(4000),

RELEASEDATE TIMESTAMP (6),

ROOTVERSIONID INT,

ISREMOTE INT,

METADADATAINFOID INT,

DOWNLOADURL VARCHAR(4000),

ISREVIEWED INT DEFAULT 1,

CONSTRAINT NCBOFILE_PK PRIMARY KEY (ID),

CONSTRAINT NCBOFILE_NCBOUSER_FK1 FOREIGN KEY (USERID)

REFERENCES NCBOUSER (ID)

) ;

CREATE TABLE NCBOFILECATEGORY

( ID INT NOT NULL,

NCBOFILEID INT NOT NULL,

CATEGORYID INT NOT NULL,

CONSTRAINT NCBOCATEGORY_PK PRIMARY KEY (ID),

CONSTRAINT NCBOCATEGORY_NCBOFILE_FK1 FOREIGN KEY (NCBOFILEID)

REFERENCES NCBOFILE (ID),

CONSTRAINT NCBOFILECATEGORY_NCBOCATE_FK1 FOREIGN KEY (CATEGORYID)

REFERENCES NCBOCATEGORIES (ID)

) ;

CREATE TABLE NCBOFILEMETADATAINFO

( ID INT NOT NULL,

DISPLAYLABEL VARCHAR(100),

METADATAPATH VARCHAR(4000),

CODINGSCHEMENAME VARCHAR(40),

FORMAT VARCHAR(50),

CURRENTVERSION VARCHAR(40),

CURRENTVERSIONSTATUS VARCHAR(4000),

CONTACTNAME VARCHAR(100),

CONTACTEMAIL VARCHAR(100),

HOMEPAGE VARCHAR(200),

DOCUMENTATION VARCHAR(200),

PUBLICATION VARCHAR(200),

ISFOUNDRY CHAR(1) DEFAULT \'N\',

URN VARCHAR(500),

NUMBEROFCLASSES INT,

PARSEDMETADATA char(1) DEFAULT \'N\',

CONSTRAINT NCBOFILEMETADATAINFO_PK PRIMARY KEY (ID)

) ;

CREATE UNIQUE INDEX NCBO_DISPLAYLABEL_INDEX ON NCBOFILEMETADATAINFO
(DISPLAYLABEL) ;

CREATE TABLE NCBOFILENAMES

( ID INT NOT NULL,

NCBOFILE INT NOT NULL,

FILENAME VARCHAR(100) NOT NULL,

CONSTRAINT NCBOFILENAMES_PK PRIMARY KEY (ID) ,

CONSTRAINT NCBOFILENAMES_NCBOFILE_FK1 FOREIGN KEY (NCBOFILE)

REFERENCES NCBOFILE (ID)

) ;

CREATE INDEX NCBOFILENAMES_INDEX1 ON NCBOFILENAMES (NCBOFILE) ;

CREATE TABLE NCBOFILEVERSIONINFO

( ID INT NOT NULL,

PARENTVERSIONID INT,

VERSIONNUMBER INT NOT NULL,

ISCURRENT INT DEFAULT 1,

CONSTRAINT NCBOFILEVERSION_PK PRIMARY KEY (ID)

) ;

CREATE INDEX NCBOFILEVERSIONINFO_INDEX1 ON NCBOFILEVERSIONINFO
(ISCURRENT);

CREATE TABLE NCBOUSERROLE

( ID INT,

USERID INT NOT NULL,

ROLEID INT NOT NULL,

PRIMARY KEY (ID)

) ;

CREATE INDEX NCBOUSERROLE_INDEX ON NCBOUSERROLE (USERID) ;

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Other\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Chemical\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values
(LAST_INSERT_ID(),\'Development\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Ethology\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Experimental
Conditions\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Genomic and
Proteomic\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Phenotype\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Taxonomic
Classification\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values
(LAST_INSERT_ID(),\'Vocabularies\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Anatomy\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Gross
Anatomy\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Animal Gross
Anatomy\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Fish
Anatomy\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Human
Developmental Anatomy\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Microbial
Anatomy\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Plant
Anatomy\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Mouse
Anatomy\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Animal
Development\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Plant
Development\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Gene
Product\',null);

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOCATEGORIES values (LAST_INSERT_ID(),\'Protein\',null);

update NCBOCATEGORIES set parentcategoryid = 10 where name=\'Gross
Anatomy\';

update NCBOCATEGORIES set parentcategoryid = 11 where name=\'Animal
Gross Anatomy\';

update NCBOCATEGORIES set parentcategoryid = 12 where name= \'Fish
Anatomy\';

update NCBOCATEGORIES set parentcategoryid = 12 where name= \'Human
Developmental Anatomy\';

update NCBOCATEGORIES set parentcategoryid = 11 where name = \'Microbial
Anatomy\';

update NCBOCATEGORIES set parentcategoryid = 11 where name = \'Plant
Anatomy\';

update NCBOCATEGORIES set parentcategoryid = 12 where name= \'Mouse
Anatomy\';

update NCBOCATEGORIES set parentcategoryid =3 where name= \'Animal
Development\';

update NCBOCATEGORIES set parentcategoryid =3 where name= \'Plant
Development\';

update NCBOCATEGORIES set parentcategoryid =6 where name=\'Gene
Product\' ;

update NCBOCATEGORIES set parentcategoryid =20 where name=\'Protein\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOROLE values (LAST_INSERT_ID(),\'OBO Developer\',\'Can
develop ontologies\');

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOROLE values (LAST_INSERT_ID(),\'OBO Librarian\',\'Can
validate Ontologies\');

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOROLE values (LAST_INSERT_ID(),\'OBO
Administrator\',\'Has administration priveleges\');

CREATE TABLE NCBOJOBTYPE

( ID INT NOT NULL,

DESCRIPTION VARCHAR(200) NOT NULL,

DISPLAYNAME VARCHAR(50) NOT NULL,

STARTHANDLER VARCHAR(200) NOT NULL,

PRIMARY KEY (ID)

) ;

CREATE TABLE NCBOJOBSTATE

( ID INT NOT NULL,

DESCRIPTION VARCHAR(200) NOT NULL,

DISPLAYNAME VARCHAR(50) NOT NULL,

JOBTYPEID INT,

ALLOWEDACTION VARCHAR(20),

PRIMARY KEY (ID),

CONSTRAINT FKAEF601B6D811B357 FOREIGN KEY (JOBTYPEID)

REFERENCES NCBOJOBTYPE (ID)

) ;

CREATE TABLE NCBOALLOWEDSTATECHANGE

( ID INT NOT NULL,

HANDLER VARCHAR(200),

BEGINSTATEID INT,

ENDSTATEID INT,

JOBTYPEID INT,

PRIMARY KEY (ID),

CONSTRAINT FK3019293BD811B357 FOREIGN KEY (JOBTYPEID)

REFERENCES NCBOJOBTYPE (ID),

CONSTRAINT FK3019293B9EF2862C FOREIGN KEY (BEGINSTATEID)

REFERENCES NCBOJOBSTATE (ID),

CONSTRAINT FK3019293BDCAE39BA FOREIGN KEY (ENDSTATEID)

REFERENCES NCBOJOBSTATE (ID)

) ;

CREATE TABLE NCBOJOB

( ID INT NOT NULL,

LASTMESSAGE VARCHAR(4000),

STATEBEGINDATE TIMESTAMP (6),

CURRENTSTATEID INT,

JOBTYPEID INT,

TARGETID INT NOT NULL,

PRIMARY KEY (ID),

CONSTRAINT FK9441DB9BF594C379 FOREIGN KEY (CURRENTSTATEID)

REFERENCES NCBOJOBSTATE (ID),

CONSTRAINT FK9441DB9BD811B357 FOREIGN KEY (JOBTYPEID)

REFERENCES NCBOJOBTYPE (ID)

) ;

CREATE TABLE NCBOTRACESEARCH

( ID INT NOT NULL,

ONTOLOGYLABELS VARCHAR(4000),

SEARCHTYPE VARCHAR(10) NOT NULL,

PROPERTY INT,

CLASSANDID INT,

DEFINITION INT,

METADATA INT,

COUNT INT NOT NULL,

SEARCHTEXT VARCHAR(4000) NOT NULL,

SEARCHALGORITHM VARCHAR(100),

CONSTRAINT NCBOTRACESEARCH_PK PRIMARY KEY (ID)

) ;

CREATE TABLE NCBOSEARCHTRACESINGLE

( ID INT NOT NULL,

SEARCHTRACEID INT,

TAB VARCHAR(100),

COUNT INT,

CONSTRAINT NCBOSEARCHTRACESINGLE_PK PRIMARY KEY (ID)

) ;

CREATE TABLE NCBOJOBSTATECHANGE

( ID INT NOT NULL,

LASTMESSAGE VARCHAR(4000),

STATECHANGEDATE TIMESTAMP (6),

STATECHANGEID INT,

JOBID INT,

PRIMARY KEY (ID),

CONSTRAINT FK189B61061639AA36 FOREIGN KEY (STATECHANGEID)

REFERENCES NCBOALLOWEDSTATECHANGE (ID),

CONSTRAINT FK189B6106243D5B43 FOREIGN KEY (JOBID)

REFERENCES NCBOJOB (ID)

) ;

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBTYPE values (LAST_INSERT_ID(),\'File
submit\',\'SUBMIT_FILE\',\'org.ncbo.stanford.server.mdb.ValidateStateProducer\');

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBTYPE values (LAST_INSERT_ID(),\'File submit PRE
LIBRARIAN
REVIEW\',\'SUBMIT_FILE_VALIDATE\',\'org.ncbo.stanford.server.mdb.ValidateStateProducer\');

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBTYPE values (LAST_INSERT_ID(),\'Parse metadata file
on update or
submit\',\'PARSE_METADATA\',\'org.ncbo.stanford.server.mdb.LoadMetadataStateProducer\');

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBTYPE values (LAST_INSERT_ID(),\'Convert file to OWL
for
URI\',\'CONVERT_FILE_URI\',\'org.ncbo.stanford.server.mdb.ConvertStateProducer\');

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Validate File In
progress\',\'VALIDATE_FILE\',null,\'NONE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'SUBMIT_FILE\') where displayname=\'VALIDATE_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Validate File
Error\',\'VALIDATE_FILE_ERROR\',null,\'NONE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'SUBMIT_FILE\') where displayname=\'VALIDATE_FILE_ERROR\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Validate file
Success\',\'VALIDATE_FILE_END\',null,\'NONE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'SUBMIT_FILE\') where displayname=\'VALIDATE_FILE_END\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Load content In
progress\',\'PARSE_FILE\',null,\'NONE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'SUBMIT_FILE\') where displayname=\'PARSE_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Load content
Error\',\'PARSE_FILE_ERROR\',null,\'NONE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'SUBMIT_FILE\') where displayname=\'PARSE_FILE_ERROR\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Load content
Success\',\'PARSE_FILE_END\',null,\'SEARCH,VISUALIZE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'SUBMIT_FILE\') where displayname=\'PARSE_FILE_END\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Load metadata In
progress\',\'PARSE_FILE_METADATA\',null,\'SEARCH,VISUALIZE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'SUBMIT_FILE\') where displayname=\'PARSE_FILE_METADATA\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Load metadata
Error\',\'PARSE_FILE_METADATA_ERROR\',null,\'SEARCH,VISUALIZE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'SUBMIT_FILE\') where
displayname=\'PARSE_FILE_METADATA_ERROR\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Load metadata
Success\',\'PARSE_FILE_METADATA_END\',null,\'SEARCH_METADATA\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'SUBMIT_FILE\') where
displayname=\'PARSE_FILE_METADATA_END\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Convert File In
progress\',\'CONVERT_FILE_URI\',null,\'NONE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'CONVERT_FILE_URI\') where
displayname=\'CONVERT_FILE_URI\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Convert file
Error\',\'CONVERT_FILE_URI_ERROR\',null,\'NONE\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'CONVERT_FILE_URI\') where
displayname=\'CONVERT_FILE_URI_ERROR\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

Insert into NCBOJOBSTATE values (LAST_INSERT_ID(),\'Convert file
Success\',\'CONVERT_FILE_URI_END\',null,\'URI\');

update NCBOJOBSTATE set jobTypeId = (select id from NCBOJOBTYPE where
displayname=\'CONVERT_FILE_URI\') where
displayname=\'CONVERT_FILE_URI_END\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'VALIDATE_FILE\' AND
C.DISPLAYNAME=\'VALIDATE_FILE_ERROR\' AND D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'VALIDATE_FILE\' AND
C.DISPLAYNAME=\'VALIDATE_FILE_END\' AND D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT
LAST_INSERT_ID(),\'org.ncbo.stanford.server.mdb.LoadStateProducer\',B.ID,C.ID,D.ID
FROM NCBOJOBSTATE B,NCBOJOBSTATE C,NCBOJOBTYPE D

WHERE B.DISPLAYNAME=\'VALIDATE_FILE_END\' AND
C.DISPLAYNAME=\'PARSE_FILE\' AND D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'PARSE_FILE\' AND
C.DISPLAYNAME=\'PARSE_FILE_ERROR\' AND D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'PARSE_FILE\' AND
C.DISPLAYNAME=\'PARSE_FILE_END\' AND D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT
LAST_INSERT_ID(),\'org.ncbo.stanford.server.mdb.LoadMetadataStateProducer\',B.ID,C.ID,D.ID
FROM NCBOJOBSTATE B,NCBOJOBSTATE C,NCBOJOBTYPE D

WHERE B.DISPLAYNAME=\'PARSE_FILE_END\' AND
C.DISPLAYNAME=\'PARSE_FILE_METADATA\' AND D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE
B.DISPLAYNAME=\'PARSE_FILE_METADATA\' AND
C.DISPLAYNAME=\'PARSE_FILE_METADATA_END\' AND
D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE
B.DISPLAYNAME=\'PARSE_FILE_METADATA\' AND
C.DISPLAYNAME=\'PARSE_FILE_METADATA_ERROR\' AND
D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT
LAST_INSERT_ID(),\'org.ncbo.stanford.server.mdb.ConvertStateProducer\',B.ID,C.ID,D.ID
FROM NCBOJOBSTATE B,NCBOJOBSTATE C,NCBOJOBTYPE D

WHERE B.DISPLAYNAME=\'PARSE_FILE_METADATA_END\' AND
C.DISPLAYNAME=\'CONVERT_FILE_URI\' AND D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'CONVERT_FILE_URI\'
AND C.DISPLAYNAME=\'CONVERT_FILE_URI_END\' AND
D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'CONVERT_FILE_URI\'
AND C.DISPLAYNAME=\'CONVERT_FILE_URI_ERROR\' AND
D.DISPLAYNAME=\'SUBMIT_FILE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'VALIDATE_FILE\' AND
C.DISPLAYNAME=\'VALIDATE_FILE_ERROR\' AND
D.DISPLAYNAME=\'SUBMIT_FILE_VALIDATE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'VALIDATE_FILE\' AND
C.DISPLAYNAME=\'VALIDATE_FILE_END\' AND
D.DISPLAYNAME=\'SUBMIT_FILE_VALIDATE\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'CONVERT_FILE_URI\'
AND C.DISPLAYNAME=\'CONVERT_FILE_URI_ERROR\' AND
D.DISPLAYNAME=\'CONVERT_FILE_URI\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE B.DISPLAYNAME=\'CONVERT_FILE_URI\'
AND C.DISPLAYNAME=\'CONVERT_FILE_URI_END\' AND
D.DISPLAYNAME=\'CONVERT_FILE_URI\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE
B.DISPLAYNAME=\'PARSE_FILE_METADATA\' AND
C.DISPLAYNAME=\'PARSE_FILE_METADATA_END\' AND
D.DISPLAYNAME=\'PARSE_METADATA\';

UPDATE sequence SET id=LAST_INSERT_ID(id+1);

INSERT INTO NCBOALLOWEDSTATECHANGE
(ID,HANDLER,BEGINSTATEID,ENDSTATEID,JOBTYPEID)

SELECT LAST_INSERT_ID(),NULL,B.ID,C.ID,D.ID FROM NCBOJOBSTATE
B,NCBOJOBSTATE C,NCBOJOBTYPE D WHERE
B.DISPLAYNAME=\'PARSE_FILE_METADATA\' AND
C.DISPLAYNAME=\'PARSE_FILE_METADATA_ERROR\' AND
D.DISPLAYNAME=\'PARSE_METADATA\';

commit;

## Appendix C. build.properties 

\# build and deploy properties

\# Server name

SERVER_NAME=localhost

\# JBoss installation directory

jboss.dir=C:/jboss-4.0.5.GA

\# Apache HTTP server directory

apache.doc.dir=C:/Apache2/htdocs

\# NCBO installation directories

ncbo.dir=C:/BioPortal3/ncbo/trunk

#ncbo.files.dir=\${ncbo.dir}/files

ncbo.files.dir=\${apache.doc.dir}/files

ncbo.config.dir=\${ncbo.dir}/config

ncbo.docs.dir=\${ncbo.dir}/docs

#ncbo.graphs.app.dir=\${ncbo.dir}/graphs/app

#ncbo.graphs.webservice.dir=\${ncbo.dir}/graphs/webservice

ncbo.graphs.app.dir=\${apache.doc.dir}/graphs/app

ncbo.graphs.webservice.dir=\${apache.doc.dir}/graphs/webservice

ncbo.lexgrid.dir=\${ncbo.dir}/lexgrid

ncbo.tmp.dir=\${ncbo.dir}/tmp

\# Due to Ant filtersfile not doing in-file property expansion the
following properties

\# must be defined using @

\# The values for the subdirctories after \@ncbo.dir@

\# must be the same as the subdirectories above for the corresponding
values

\# NCBO_FILES_DIR=@ncbo.dir@/files

NCBO_FILES_DIR=@apache.doc.dir@/files

NCBO_CONFIG_DIR=@ncbo.dir@/config

NCBO_DOCS_DIR=@ncbo.dir@/docs

#NCBO_GRAPHS_APP_DIR=@ncbo.dir@/graphs/app

#NCBO_GRAPHS_WEBSERVICE_DIR=@ncbo.dir@/graphs/webservice

NCBO_GRAPHS_APP_DIR=@apache.doc.dir@/graphs/app

NCBO_GRAPHS_WEBSERVICE_DIR=@apache.doc.dir@/graphs/webservice

NCBO_LEXGRID_DIR=C:/LexBIG

\# HTTP URL used by code to determine location of documentation. The
part after the domain name must match the

\# alias in static-content.inc for docs

NCBO_APACHE_DOCS_ALIAS=/docs

#NCBO_APACHE_FILES_ALIAS=C:/Apache2/htdocs/files

NCBO_APACHE_FILES_ALIAS=/files

#NCBO_APACHE_GRAPHS_APP_ALIAS=//graphs/app

#NCBO_APACHE_GRAPHS_WEBSERVICE_ALIAS=//graphs/webservice

NCBO_APACHE_GRAPHS_APP_ALIAS=/graphs/app

NCBO_APACHE_GRAPHS_WEBSERVICE_ALIAS=/graphs/webservice

\# HTTP URL used for webservice deployment

NCBO_WEBSERVICEBEAN =
http://localhost/ncboservicebeans/NCBOWebserviceBean

\# Database and database releated settings

\# Class which implements sequence generator for specific database

\# not yet implemented \[MySQL\]

\# org.ncbo.stanford.server.session.PostgresSequenceHandler for
\[Postgres\]

\# org.ncbo.stanford.server.session.OracleSequenceHandler for \[Oracle\]

NCBO_SEQUENCE_HANDLER_CLASS=org.ncbo.stanford.server.session.MySqlSequenceHandler

\# JBoss datasource configuration - corresponds to ncbo-ds.xml

\# MySqlDS \[MySQL\]

\# PostgresDS \[Postgres\]

\# OracleDS \[Oracle\]

datasource=MySqlDS

NCBO_DATASOURCE=java:/MySqlDS

\# JDBC connect string

\# jdbc:mysql://hostname:port/dbname \[MySQL\]

\# jdbc:postgresql://hostname:port/dbname \[Postgres\]

\# jdbc:oracle:thin:@hostname:port:sid \[Oracle\]

NCBO_DATASOURCE_CONNECTION_URL=jdbc:mysql://localhost:3306/ncbo

NCBO_DATASOURCE_USER_NAME=root

NCBO_DATASOURCE_PASSWORD=password

NCBO_JAWS_TYPE_MAPPING=mySQL

\# Login module

\# Corresponds to login-config.xml

\# Database parameters for where login information stored

NCBO_LOGIN_MODULE_MANAGED_CONNECTION=jboss.jca:service=LocalTxCM,name=MySqlDS

\# Mail

\# POP3 mail server

NCBO_MAIL_POP3_HOST=pop3.host.domain

\# SMTP gateway server

NCBO_MAIL_SMTP_HOST=smtp.host.domain

\# Email address mail will be sent from

NCBO_MAIL_FROM=guoi@mail.nih.gov

\# Email address to send pending submissions and other administrative
notices

NCBO_ADMIN_EMAIL=guoi@mail.nih.gov

NCBO_ADMIN_USERID=admin

NCBO_ADMIN_PASSWORD=admin

\# Sourceforge - used for sourceforge pull from obo.sourceforge.net

NCBO_SOURCEFORGE_CHECKOUT_DIR=@ncbo.dir@/cvscheckout

NCBO_SOURCEFORGE_ONTOLOGIES_TEXT=@ncbo.dir@/cvscheckout/obo/website/cgi-bin/ontologies.txt

\# Remote access

NCBO_JAVA_NAMING_FACTORY_INITIAL=org.jnp.interfaces.NamingContextFactory

NCBO_JAVA_NAMING_FACTORY_URL_PKGS=org.jnp.interfaces

NCBO_JAVA_NAMING_PROVIDER_URL=jnp://localhost:1099

NCBO_JAVA_SECURITY_AUTH_LOGIN_CONFIG=c:/jboss-4.0.5.GA/client/auth.conf

\# Cache

\# Cache location

NCBO_JCS_CACHE_LOCATION=@ncbo.dir@/cache

\# Cache top nodes (true/false). True improves performance, slows
application server startup time.

NCBO_CACHE_TOP_NODES=false

\# Graphing

\# Font used during graph generation

NCBO_GRAPHVIZ_FONT_NAME=Courier

\# Font size used during graph generation

NCBO_GRAPHVIZ_FONT_SIZE=9

\# Searching

\# Search fetch limit. Higher limit slows down search results.

NCBO_SEARCH_FETCH_LIMIT=1000

\# Location where files are temporarily uploaded during submission
process

NCBO_FILE_UPLOAD_DIR=@ncbo.dir@/tmp

\# Used for NCBO library business logic

\# Setting to true causes submissions to be held in

\# \"pending submissions\" list until librarian review

\# Setting to false causes submissions to be put into the

\# library immediately

NCBO_LIBRARY_REVIEW_MODE=false

\# Placeholder for future functionality

NCBO_REMEMBER_ME_ENABLED=false

\# For NCBO internal testing purposes

NCBO_VERSION=1.0

\# Setting NCBO_PRODUCTION_RELEASE to true will prevent version number
from appearing in header

NCBO_PRODUCTION_RELEASE=true

\# LexGrid parameters

\# token substitutions

#\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\--

\# \*\*\* Important \*\*\*

\# Refer to conf/config.props for a complete description of each of the
below LexGrid configuration parameters

LEXGRID_LG_BASE_PATH=

#Lexgrid jar file location. Recommended to be jboss lib

LEXGRID_JAR_FILE_LOCATION=c:/jboss-4.0.5.GA/server/default/lib

LEXGRID_INDEX_LOCATION=@NCBO_LEXGRID_DIR@/resources/lbIndex

LEXGRID_REGISTRY_FILE=@NCBO_LEXGRID_DIR@/resources/config/registry.xml

LEXGRID_MAX_CONNECTIONS_PER_DB=50

LEXGRID_CACHE_SIZE=500

LEXGRID_ITERATOR_IDLE_TIME=30

LEXGRID_MAX_RESULT_SIZE=5000

LEXGRID_SINGLE_DB_MODE=true

LEXGRID_DB_URL=@NCBO_DATASOURCE_CONNECTION_URL@

LEXGRID_DB_PREFIX=lb1

LEXGRID_DB_PARAM=

\# Lexgrid DB Driver

#org.gjt.mm.mysql.Driver \[MySQL\]

#org.postgresql.Driver \[Postgres\]

#oracle.jdbc.driver.OracleDriver \[Oracle\]

LEXGRID_DB_DRIVER=com.mysql.jdbc.Driver

LEXGRID_DB_USER=@NCBO_DATASOURCE_USER_NAME@

LEXGRID_DB_PASSWORD=@NCBO_DATASOURCE_PASSWORD@

LEXGRID_LOG_FILE_LOCATION=@NCBO_LEXGRID_DIR@/logs

LEXGRID_API_LOG_ENABLED=true

LEXGRID_DEBUG_ENABLED=true

LEXGRID_LOG_CHANGE=5

LEXGRID_ERASE_LOGS_AFTER=5

LEXGRID_EMAIL_ERRORS=false

LEXGRID_SMTP_SERVER=mailfwd.nih.gov

[LEXGRID_EMAIL_TO=guoi@mail.nih.gov](mailto:LEXGRID_EMAIL_TO%3Dguoi@mail.nih.gov)

## Appendiex D. ncbo.properties

ncbo.apache.files.dir=C:/Apache2/htdocs/files

ncbo.apache.files.url=http://localhost/files

ncbo.apache.graphs.app.dir=C:/Apache2/htdocs/graphs/app

ncbo.apache.graphs.webservice.dir=C:/Apache2/htdocs/graphs/webservice

ncbo.apache.graphs.app.url=http://localhost/graphs/app

ncbo.apache.graphs.webservice.url=http://localhost/graphs/webservice

ncbo.apache.docs.url=http://localhost/docs

ncbo.app.url=http://localhost/ncbo

ncbo.datasource=java:/MySqlDS

ncbo.sequence.handler.class=org.ncbo.stanford.server.session.MySqlSequenceHandler

ncbo.sourceforge.checkout.dir=C:/BioPortal3/ncbo/trunk/cvscheckout

ncbo.sourceforge.ontologies.txt=C:/BioPortal3/ncbo/trunk/cvscheckout/obo/website/cgi-bin/ontologies.txt

ncbo.java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory

ncbo.java.naming.factory.url.pkgs=org.jnp.interfaces

ncbo.java.naming.provider.url=jnp://localhost:1099

ncbo.java.security.auth.login.config=c:/jboss-4.0.5.GA/client/auth.conf

ncbo.cache.top.nodes=false

ncbo.graphviz.font.name=Courier

ncbo.graphviz.font.size=9

ncbo.file.upload.dir=C:/BioPortal3/ncbo/trunk/tmp

ncbo.remember.me.enabled=false

ncbo.production_release=true

ncbo.version=1.0

ncbo.admin.email=guoi@mail.nih.gov

ncbo.admin.userid=admin

ncbo.admin.password=admin

ncbo.search.fetch.limit=1000

ncbo.library.review.mode-false

## Appendiex E. **MySqlSequenceHandler.java**

/\*

\* The contents of this file are licensed under the Eclipse Public
License,

\* Version 1.0 (the \"License\");

\* You may not use this file except in compliance with the License.

\* You may obtain a copy of the License at -

\*

\* http://www.eclipse.org/legal/epl-v10.html

\*

\* Unless required by applicable law or agreed to in writing, software

\* distributed under the License is distributed on an \"AS IS\" BASIS,

\* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.

\* See the License for the specific language governing permissions and

\* limitations under the License.

\*

\*/

package org.ncbo.stanford.server.session;

import org.ncbo.stanford.server.beans.\*;

import javax.ejb.\*;

import javax.persistence.\*;

import java.sql.Timestamp;

import java.util.Collection;

import java.util.Iterator;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.logging.Logger;

import javax.sql.DataSource;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import org.ncbo.stanford.server.util.NCBOMailUtil;

import org.ncbo.stanford.server.util.NCBOProperties;

public class MySqlSequenceHandler implements SequenceHandler{

private static Logger s_log =

Logger.getLogger(SequenceGeneratorBean.class.getName());

public Integer getNextRecordId() {

int nextID = 0;

Connection connection = null;

PreparedStatement statement = null;

ResultSet rs = null;

DataSource m_dataSource = null;

try {

Context context = null;

try {

context = new InitialContext();

m_dataSource = (DataSource)
context.lookup(NCBOMailUtil.getProperty(NCBOProperties.NCBO_DATASOURCE));//\"java:/OracleDS\");

}

catch (NamingException ne) {

ne.printStackTrace();

throw new RuntimeException(

\"Could not find DataSource with bind name\");

}

finally {

if (context != null) {

try {

context.close();

}

catch (NamingException e) {

}

}

}

// Get JDBC Connection, create statement and get the result to return

connection = m_dataSource.getConnection();

statement =

connection.prepareStatement(\"UPDATE sequence SET
id=LAST_INSERT_ID(id+1)\");

statement.executeUpdate();

statement =

connection.prepareStatement(\"SELECT id FROM sequence\");

rs = statement.executeQuery();

if (rs.next()) {

nextID = rs.getInt(1);

}

}

catch (SQLException e) {

e.printStackTrace();

s_log.throwing(

SequenceGeneratorBean.class.getName(),

\"getNextRecordId\",

e);

}

catch (Exception e) {

s_log.throwing(

SequenceGeneratorBean.class.getName(),

\"getNextRecordId\",

e);

}

finally {

if (connection != null) {

try {

connection.close();

}

catch (Exception e) {

// ignore

}

}

}

return nextID;

}

}

## Appendiex F. BioPortal Source Tree

\\\-\--org

+\-\--json

\| JSONArray.java

\| JSONException.java

\| JSONObject.java

\| JSONString.java

\| JSONStringer.java

\| JSONTokener.java

\| JSONWriter.java

\|

\\\-\--ncbo

\\\-\--stanford

+\-\--client

\| +\-\--bean

\| \| \| AccountBean.java

\| \| \| BrowseStatusBean.java

\| \| \| ContactBean.java

\| \| \| DataConstants.java

\| \| \| GraphStatusBean.java

\| \| \| MetadataEntityBean.java

\| \| \| NodeEntityBean.java

\| \| \| OntologyAdministratorBean.java

\| \| \| OntologyBean.java

\| \| \| OntologyCategoryNodeBean.java

\| \| \| OntologyCurrentBean.java

\| \| \| OntologyListBean.java

\| \| \| OntologyPendingListBean.java

\| \| \| SearchAllResultsBean.java

\| \| \| SearchCategoryResultsBean.java

\| \| \| SearchMetadataResultsBean.java

\| \| \| SearchMetadataStatusBean.java

\| \| \| SearchResultsBean.java

\| \| \| SearchStatisticsBean.java

\| \| \| SearchStatusBean.java

\| \| \| ServiceLocatorBean.java

\| \| \| ValueStatusBean.java

\| \| \| VisualizeBean.java

\| \| \|

\| \| \\\-\--admin

\| \| AccountListBean.java

\| \| TraceResultBean.java

\| \| TraceResultsBean.java

\| \|

\| +\-\--resource

\| \| NCBOResourceBundle.java

\| \|

\| +\-\--util

\| \| CaseInsensitiveComparator.java

\| \| CategoryNameComparator.java

\| \| DataUtils.java

\| \| LogUtils.java

\| \| MessageUtils.java

\| \| NavigationUtils.java

\| \| OntologyNameComparator.java

\| \| SearchTextParser.java

\| \| SecurityUtils.java

\| \|

\| \\\-\--view

\| \| PageConstants.java

\| \|

\| +\-\--framework

\| \| AjaxServlet.java

\| \| BaseBean.java

\| \| CacheFilesServlet.java

\| \| CaseInsensitiveSortableModel.java

\| \| EmailImageServlet.java

\| \| LoginFilter.java

\| \| LoginServlet.java

\| \| MaintenanceFilter.java

\| \| NCBOPhaseListener.java

\| \| PPRPhaseListener.java

\| \| ProcessTrainItem.java

\| \| ServiceLocator.java

\| \| SessionTimeoutFilter.java

\| \| TreeModelAdapter.java

\| \| ValidateUserServlet.java

\| \|

\| \\\-\--layout

\| PageLayoutBean.java

\| SkinBean.java

\|

\\\-\--server

+\-\--beans

\| \| AssociationBeanResult.java

\| \| AssociationBeanResultList.java

\| \| AssociationInfo.java

\| \| GraphBean.java

\| \| HierarchyBean.java

\| \| NCBOAllowedStateChange.java

\| \| NCBOCategory.java

\| \| NCBOFile.java

\| \| NCBOFileCategory.java

\| \| NCBOFileCurrent.java

\| \| NCBOFileMetadataInfo.java

\| \| NCBOFileNames.java

\| \| NCBOFileVersionInfo.java

\| \| NCBOJob.java

\| \| NCBOJobState.java

\| \| NCBOJobStateChange.java

\| \| NCBOJobType.java

\| \| NCBOOntology.java

\| \| NCBOOntologyAccess.java

\| \| NCBOOntologyList.java

\| \| NCBORole.java

\| \| NCBOSearchTrace.java

\| \| NCBOSearchTraceSingle.java

\| \| NCBOUser.java

\| \| NCBOUserRole.java

\| \| NCBOWebserviceEndpoint.java

\| \| NetworkBean.java

\| \| NodeBean.java

\| \| NodeBeanLight.java

\| \| NodeBeanResult.java

\| \| PropertyValue.java

\| \| RelationshipBean.java

\| \| SearchBeanResult.java

\| \| SearchBeanResultList.java

\| \| SearchCountBean.java

\| \| SearchMetadataResultBean.java

\| \| SearchNodeResultBean.java

\| \| SearchParameterBean.java

\| \| SearchResultBean.java

\| \| StringList.java

\| \|

\| \\\-\--aop

\| NCBOAspect.java

\| NCBOTrace.java

\|

+\-\--exception

\| DirectoryNotCreatedException.java

\| DisplayLabelExistsException.java

\| FileNotMovedException.java

\| LoginChangedException.java

\| LoginExistsException.java

\| NCBOException.java

\| OntologyNotFoundException.java

\| SequenceIdException.java

\| UserNotFoundException.java

\| UserNotValidatedException.java

\| VersionReleaseDateExistsException.java

\|

+\-\--job

\| ConvertProcessorFactory.java

\| LoadMetadataProcessor.java

\| LoadProcessorFactory.java

\| OBOConvertProcessor.java

\| OBOLoadProcessor.java

\| OBOValidateProcessor.java

\| OWLConvertProcessor.java

\| OWLLoadProcessor.java

\| OWLValidateProcessor.java

\| ProtegeConvertProcessor.java

\| ProtegeLoadProcessor.java

\| ProtegeValidateProcessor.java

\| StateProcessor.java

\| StateProcessorFactory.java

\| ValidateProcessorFactory.java

\|

+\-\--mdb

\| ConvertMDBBean.java

\| ConvertStateProducer.java

\| LoadMDBBean.java

\| LoadMetadataMDBBean.java

\| LoadMetadataStateProducer.java

\| LoadStateProducer.java

\| NCBOStateMDB.java

\| SearchTraceMDBBean.java

\| SearchTraceProducerMDB.java

\| ValidateMDBBean.java

\| ValidateStateProducer.java

\|

+\-\--metadatabean

\| AboutTypeBean.java

\| AuthorityTypeBean.java

\| ContactTypeBean.java

\| DownLoadInfoTypeBean.java

\| FormatDescriptionBean.java

\| FormatTypeBean.java

\| FoundryReferenceBean.java

\| LocalNameDefinitionBean.java

\| OntologyDescriptionBean.java

\| VersionInfoTypeBean.java

\|

+\-\--security

\| NCBOLoginModule.java

\| UsernamePrincipal.java

\|

+\-\--session

\| \| CategorySessionBean.java

\| \| CategorySessionBeanImpl.java

\| \| CategorySessionBeanRemote.java

\| \| FileAndVersionSessionBean.java

\| \| FileAndVersionSessionBeanImpl.java

\| \| FileAndVersionSessionBeanRemote.java

\| \| FileAndVersionSessionBeanUnsecure.java

\| \| FileAndVersionSessionBeanUnsecureImpl.java

\| \| FileAndVersionSessionBeanUnsecureRemote.java

\| \| **MySqlSequenceHandler.java**

\| \| NCBOWebserviceBean.java

\| \| NCBOWebServiceRemote.java

\| \| OracleSequenceHandler.java

\| \| PostgresSequenceHandler.java

\| \| SearchSessionBean.java

\| \| SearchSessionBeanImpl.java

\| \| SearchTraceSessionBean.java

\| \| SearchTraceSessionBeanImpl.java

\| \| SequenceGeneratorBean.java

\| \| SequenceGeneratorBeanImpl.java

\| \| SequenceHandler.java

\| \| Tracer.java

\| \| UserSessionBean.java

\| \| UserSessionBeanImpl.java

\| \| UserSessionBeanRemote.java

\| \|

\| +\-\--job

\| \| JobSessionBean.java

\| \| JobSessionBeanImpl.java

\| \|

\| \\\-\--processor

\| OBOProcessorUtil.java

\| OBOVisualizeProcessor.java

\| VisualizeProcessor.java

\| VisualizeProcessorFactory.java

\|

\\\-\--util

cache.ccf

CVSFile.java

CVSTestUI.java

GraphGenerator.java

JCVSCheckout.java

LoadOntologyBean.java

Log.java

LogUtils.java

NCBOConstants.java

NCBOFileCache.java

NCBOFileDisplayLabelComparator.java

NCBOMailUtil.java

NCBOProperties.java

NodeBeanNameComparator.java

RemoteLoginUtil.java

Soundex.java

StringEncrypter.java

UnJar.java

UnTar.java

UnZip.java

URLTimer.java