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 |
---|
| <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>[check with your project lead]</password>
</server>
</servers> |
- 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)
|