Developer SetupA developer's workstation can be setup by following the steps outlined below; - KIS account - In order to have read/write access to the OLE version control repository, one must have a valid KIS account. Please contact your project manager to have an account created.
- Required Software
- Java SDK - Currently OLE is developed and tested using JDK 1.6 (Java 6) and soon we will be moving to JDK 1.7 (Java 7). The software can be downloaded from here.
Maven 3.x - OLE uses maven as the build management tool and the software can be downloaded from here. Maven uses this idea of pulling down the required artifacts (jar files) from a central repository. Sometimes the dependent jars may not be found in the central repository due to licensing issues and so Kuali also maintains a repository that has our own published artifacts. A common example would be oracle jar that is not published to the central repository. In order to download jars from the Kuali repository, the settings.xml under user.home/.m2 folder needs to be updated with the following entries: Code Block |
---|
language | html/xml |
---|
title | Maven settings.xml |
---|
collapse | true |
---|
| <?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>kuali.private</id>
<mirrorOf>*</mirrorOf>
<url>http://nexus.kuali.org/content/groups/developer</url>
</mirror>
</mirrors>
<servers>
<server>
<id>kuali.private</id>
<username>developer</username>
<password>d3v3l0p3r<<password>[check with your project lead or the configuration manager]</password>
</server>
</servers>
</settings> |
- Tomcat - OLE is deployed under Tomcat web container. The software can be downloaded from here. Ensure the following jars are in your tomcat.home/lib directory; ojdbc6.jar and mysql-connector-java-5.1.13.jar. These jars will be required for database connectivity when the applications are launched in tomcat.
MySQL/Oracle - OLE supports both MySQL and Oracle and these can be downloaded from here. Info |
---|
| Oracle installation is tricky on a mac/ubuntu workstations, and so as a temporary workaround, install a VM with Windows or Oracle's VirtualBox that comes with Oracle bundled. |
Warning |
---|
| At the moment the latest version of MySQL which is 5.6 wont work with the impex tool that we have. One must install the 5.5 version of the MySQL server. |
- Checking out the codebase - OLE codebase can be checked out from the following SVN location.
- Building the OLE modules - OLE is made up of three modules namely OLEFS, OLELS and OLEDOCSTORE.
From the root directory of where the OLE codebase has been checked out run the following maven command No Format |
---|
mvn clean install -DskipTests=true |
- Building the OLEFS application - OLEFS is the financial module with KFS as the core. KFS is an ant style project, so even though it may look it has pom file and a maven build process, behind the scenes several ant targets are called to get the application ready for deployment.
Database setup - The default database setup is MySQL and running the following maven command will setup a clean database for OLEFS. The default username and passwords are OLE/OLE. Also the default dba username is root and password is none. No Format |
---|
cd project-directory/ole-app/ole-fs
mvn initialize -Pdb
Alternatively if you have your MySQL server setup with a dba username/passoword, then update your maven command to the following and execute;
mvn initialize -Pdb -Dmysql.dba.username=[fill me] -Dmysql.dba.password=[fill me] |
- Verify the database got created by; there should be an entry for OLE in MySQL
- Generating the war file - The war file would have been generated as part of 4.a and can be located under project-root-directory/ole-app/ole-fs/target/olefs-[version]-webapp.war;
- Building the OLELS application
Database setup - The default database setup is MySQL and can be done using the following maven command No Format |
---|
cd project-directory/ole-rice2/ole-rice-db
mvn clean install -Pdb,mysql
Alternatively if you have your MySQL server setup with a dba username/password, then update your maven command to the following and execute;
mvn clean install -Pdb,mysql -Dimpex.dba.username=[fill me] -Dimpex.dba.password=[fill me] |
- Verify the database got created; there should be an entry for OLERICE2 in MySQL.
- Generating the war file - The war file would have been generated as part of 4.a and can be located under the project-root-directory/ole-rice2/ole-rice-webapp/target/ole-rice-webapp-[version].war
- Module specific configuration file - This is a file that the Rice framework will look for under user.home/kuali/main/dev on the local machine and any properties such as db connection info, application urls etc will be overridden. Copy the following file to your user.home/kuali/main/dev OLE_Rice2-config.xml. Ensure the name of the file is similar to the module name and in this case it is set to OLE_Rice2.
- Building the OLEDOCSTORE application
- Database setup - OLEDOCSTORE is based on Apache Jackrabbit core and currently running the application sets up the db directly.
- Generating the war file - The war file would have been generated as part of step 4.a and can be located under the project-root-directory/ole-docstore/ole-docstore-webapp/target/oledocstore.war
- Deployment to tomcat
- OLEFS - Rename the war file from 4.b.iii to olefs.war and copy it to your local tomcat's webapps folder.
- OLELS - Rename the war file from 4.c.iii to olerice2.war and copy it to your local tomcat's webapps folder.
OLEDOCSTORE - Simply copy the oledocstore.war to your local tomcat's webapps folder. Code Block |
---|
title | If you dont want to perform steps a, b and c, alternatively you can point your local tomcat to the individual modules. The following lines need to be added to the file named server.xml under the tomcat.home.directory/conf folder and within the <Host> </Host> tags. |
---|
| <Context docBase="project-root-directory/ole-app/ole-fs/target/ole-fs-webapp" path="/olefs"/>
<Context docBase="project-root-directory/ole-rice2/ole-rice-webapp/target/ole-rice-webapp" path="/olerice2"/>
<Context docBase="project-root-directory/ole-docstore/ole-docstore-webapp/target/ole-docstore-webapp-webapp" path="/oledocstore"/> |
Verify the applications are up and running: Info |
---|
Ensure the JAVA_OPTS have the following entry too for the memory settings; -Xms512m -Xmx1g -XX:MaxPermSize=512m |
- localhost:8080/olefs
- localhost:8080/olerice2
- localhost:8080/oledocstore
The above steps have been tested and verified to get a working OLE codebase on a local developer's machine (Mac/Ubuntu). The steps should be very similar on windows too and if there are any issues, contact devops@ole.kuali.org. There are few scripts attached here also that essentially perform the steps above in an automated fashion. Info |
---|
| Ensure the following system properties are set; OLE_WORKSPACE_ROOT TOMCAT_HOME On a Mac/Ubuntu this will be typically found in the .bashrc or the .profile files; On a windows machine its set in the environment variables section under Advanced Settings in the Control Panel |
- ole.sh - Script to checkout codebase and build to produce the deployable artifacts.
- db-refresh-mysql.sh - Script to refresh local MySQL DB for OLEFS and OLELS ( Ensure to update this script with the appropriate impex.dba.password (root password for your MySQL installation) )
- InitializeAndStartTomcat.sh - Script to copy the deployable artifacts to local tomcat and bring up the applications.
IDE Setup- Developers are free to use IDE of their choice, but in Kuali the two most common ones are Eclipse and IntelliJ Overriding default properties - OLEFS- In order to override the default properties we need to have a property file created in the right place where the application knows to look for.
- From the console change into the project root directory
- cd ole-app/ole-fs
- mvn generate-resources -Plocal
- This generates a file called ole-fs.properties under user.home/.kuali/ole
- OLELS
- OLEDOCSTORE
Overriding default properties contd. | OLEFS | OLELS | OLEDOCSTORE |
---|
log4j.properties | Update ole-fs.properties under user.home/.kuali/ole with the following entries
ole.fs.log4j.override=true ole.fs.log4j=[path the log4j.properties file] | Edit the OLE_Rice2-connfig.xml file under the "Developer Setup" section #4.b.iv with the following entry
<param name="log4j.settings.path"> path to the log4j.properties file </param> | | | | | | | | | |
Database Swaps (MySQL/Oracle) |