Developer Guide

From OpenKM Documentation
Revision as of 21:07, 25 January 2010 by Pavila (talk | contribs) (Configuring java to eclipse)

Jump to: navigation, search

The developer environment can be set in any Operating System (Linux, Windows, etc.) since it is a multi-platform system, but Linux is recommended, because is what it is being used.

You need to install Maven, eclipse IDE and some plugins.

For OpenKM 4.0 and 5.0

Configuring maven

Refer to maven installation at http://maven.apache.org/download.html#Installation

Really we'll use maven in operating system console only for some special operations like installing external libraries.

In GNU Linux Ubuntu for example you could be good adding it in $HOME/.bashrc

export PATH=$PATH:/home/jllort/software/apache-maven-2.2.1/bin

Checkout OpenKM from svn

Go to File / New / Other and select Maven / Checkout Maven Projects from SCM

Okm dev guide 001.jpeg

Select the svn type and typewrite the url https://openkm.svn.sourceforge.net/svnroot/openkm/branches/4.0/openkm to refer version 4.0.

Okm dev guide 002.jpeg Okm dev guide 003.jpeg

Be patient, first time you downloading OpenKM from svn, you're downloading all libraries to your maven repository. It could need some hours depending your Internet connection.

After OpenKM it'll be downloaded, automatically it'll be compiled

Installing external libraries to maven repository

Open an operating system console. Go to your OpenKM project path in your file system. Come into ext-libs and execute install.sh ( Windows users simply open this file with text editor and execute the command )

Execute packaging

In Eclipe select openkm root folder. Open contextual menu and select Run As / Maven Package OpenKM.War it'll be appears created under target folder

Okm dev guide 006.jpeg

Recomendations

We recommend downloading JBoss+OpenKM from SourceForge, remove OpenKM.war and develop with this JBoss server configuration. For better development we recommend not deploying OpenKM.war file it's better setting in $JBOSS_HOME/server/default/deploy some alias to target/OpenKM folder

Okm dev guide 011.jpeg

In case you're making strong changes in OpenKM UI ( GWT ) we recommend disabling pom compile directive

<plugin>
    <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>1.1</version>
        <configuration>
            <runTarget>es.git.openkm.frontend.Main/index.html</runTarget>
        </configuration>
        <executions>
          <execution>
            <goals>
               <!-- <goal>compile</goal> -->
              <!-- <goal>generateAsync</goal>  -->
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
    </plugin>

You might be interested in running frontend and backend GWT packaging from eclipse. Go to run configurations and add in maven build

Okm dev guide 012.jpeg

Okm dev guide 013.jpeg

To achieve a faster compile we use to development Firefox, uncommenting gecko line on file Main.gwt.xml GWT compilation only for gecko browser runs fine. Don't forget at finish to comment it and try application with IE or other browsers. Now are two files called Main.gwt.xml one for frontend and other to backend.

<!-- Compile for Firefox only -->
<set-property name="user.agent" value="gecko"/>

Changes between developer guide 4.0 to 5.0

  • GWT 1.7.1

Changes between developer guide 2.0 to 4.0

  • Changed to Eclipse Galileo
  • Now we use maven in replacement of JBoss Tools

Changes between developer guide 1.2 to 2.0

  • Changed IDE to Eclipse Europa / JBoss tools, before was JBoss IDE.
  • GWT 1.5.3 is needed to compile, before was version 1.4.6
  • Changed packaging to new jboss tools packaging.
  • Changed GWT generating to temporary JBoss folder to project folders to developing.
  • Added new generateback.sh and generateback.bat to GWT admin.
  • Upgraded JBoss server to version 4.2.2.GA

Changes between developer guide 1.0 and 1.1 to 1.2

  • GWT 1.4.6 is needed to compile, before was version 1.3.3.
  • Changes on GWT shell configuration, now not uses GWTDS variable ( code deleted ).
  • Configured generate.sh to deploy to tmp JBoss with OpenKM.ear deployed to fast developing.
  • Added gecko to Main.gwt.xml to fast compiling only gecko when is uncommented.

Developers support on environment changes

If you are a developer or simply you want to be informed when some changes are made and affect to developer environment, email us and we'll tell you, because developer guide only it'll be remixed when a new version it'll be released at last.

We think development environment now is fine, and we doubt change it on new version. Although it, especially when we make repository upgrades is needed on development to recreate repository several times on a week, this could be unpleasant for some developer if no are informed about it, because one or two weeks could be especially difficult to get a good SVN compiling code without problems. Normally when we are upgrading repository, the developers that are making UI changes must not check-outs SVN code for some time