Development tips
Tomcat application deployment
For faster development we recommend not deploying OpenKM.war directly, file and create in $TOMCAT_HOME/webapps a folder alias of target/OpenKM:
To create symbolic links in Windows use "juntion.exe" application.
More information at http://technet.microsoft.com/en-us/sysinternals/bb896768.
Compile only GWT frontend module
To compile GWT modules individually execute the command:
$ mvn gwt:compile -Dgwt.module=com.openkm.frontend.Main
Configure GWT build from eclipse
Go to "Run configurations", choose "Maven build" and click on "right mouse button" to "add" new maven buil.
Compile only one GWT frontend permutation
GWT by default compiles six permutations, each one for distinct browsers. Each permutation consumes a lot of hardware resources ( RAM and CPU's).
For fast development and less compilation time enable only a single permutation.
Decreasing the number of enabled permutation, you will decrease the total compilation time needed.
You can also declare several permutations at same time, for example for enabling firefox and chrome can use:
<set-property name="user.agent" value="gecko1_8, safari"/>
Enable only firefox permutation
Edit the main.gwt.xml OpenKM project file:
<!-- Compile for Firefox only -->
<set-property name="user.agent" value="gecko1_8"/>
Enable only chrome permutation
Edit the main.gwt.xml OpenKM project file:
<!-- Compile for Firefox only -->
<set-property name="user.agent" value="safari"/>
Enable only IE permutation
Edit the main.gwt.xml OpenKM project file:
<!-- Compile for Firefox only -->
<set-property name="user.agent" value="ie8"/>
Depending the GWT version also are allowed ie6, ie9 and ie10 values.
More information at UserAgent.gwt.xml.
Configure number of CPU's to be used for compiling GWT frontend
Increasing the number of CPU's used by compiling GWT you will decrease the total compilation time needed.
GWT compilation process can use more than one cpu. You can set the number of cpu to be used with "localworkers" parameter.
Important, depending on the number of cores the memory decrease the number of gwt instances compiled at the same time, decreasing locarlWorkers, otherwise your computer may hang.
Edit the pom.xml project file.
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>${gwt.version}</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<!-- <goal>generateAsync</goal> -->
<!-- <goal>test</goal> -->
</goals>
</execution>
</executions>
<configuration>
<runTarget>com.openkm.frontend.Main/index.html</runTarget>
<modules>
<module>com.openkm.frontend.Main</module>
</modules>
<localWorkers>4</localWorkers>
</configuration>
</plugin>
In case you're making a lot of changes in OpenKM UI (GWT) we recommend disabling the "compile" directive
Deploying script sample
You can use a deploying script:
#!/bin/bash
# @author: Kenneth Walter
#Cleans and re-compiles the source files
mvn -Dmaven.test.skip=true clean gwt:compile install $*
#Set the TARGET_DIRECTORY to the path of your tomcat installation
TARGET_DIRECTORY=~/Downloads/tomcat-7.0.27/
FILE_TO_MOVE=target/OpenKM.war
#This will only attempt to replace the existing WAR if the new WAR exists
if [ -f $FILE_TO_MOVE ]
then
echo 'Deploying WAR to Tomcat Directory'
cp -v $FILE_TO_MOVE $TARGET_DIRECTORY/webapps/.
echo 'Done'
fi