= Guides for Developers = == Source Code Repository == * Subversion: http://dev.utgenome.org/svn/utgb == Genome Browser == * SVN: http://dev.utgenome.org/svn/utgb/trunk/browser == UTGB Common == * SVN: http://dev.utgenome.org/svn/utgb/trunk/common == Development with Eclipse == * Download [http://eclipse.org Eclipse] * Install [http://subclipse.tigris.org Subclipse] (or [http://www.polarion.org/index.php?page=overview&project=subversive Subversive]) plug-in. * Eclipse -> Help -> Software Updates -> Find/Install -> (Select "Search new features to install") -> (Push "New Remote Site") * add http://subclipse.tigris.org/update_1.0.x or * http://subclipse.tigris.org/update_1.2.x (Eclipse 3.2~) * Open the SVN Repository Explorer perspective, then add new remote site, http://dev.utgenome.org/svn/utgb. * Checkout the [http://dev.utgenome.org/svn/utgb/trunk/browser browser] folder as an Eclipse project. === Installing GWT === * Download the latest version of [http://code.google.com/webtoolkit/ Google Web Toolkit], matching your OS environment. * http://dev.utgenome.org/svn/archive/gwt * Expand the archive, for example, c:\home\leo\local\gwt-win-1.4.10 * Set the class path variable named GWT_HOME in your Eclipse (Window -> Preferences -> Java -> Build Path -> Classpath): {{{ GWT_HOME=(your GWT installation folder) }}} == Launch the GWT Develpment Shell == 1. Click the side-cursor on the Debug botton, then select "GenomeBrowser_gwt_shell" 1. GWT Shell Window and Hosted-mode browser, which is exactly IE plug-in (in Windows), will open after 10~30 seconds. == Other Useful Plug-ins for Eclipse == * [http://www.eclipse.org/mylyn Mylyne] * Update site: (for Eclipse 3.2) http://download.eclipse.org/tools/mylyn/update/e3.2 * Task-oriented development support utilities with Trac Ticket/Wiki view, modify, query facilities. * [http://kurucz-grafika.de/fatjar FatJar] * Packs all required Jar files into a single Jar file. * [http://www.eclipse.org/buckminster/downloads.html Buckminster] * required to install Subclipse & Mylyn integration feature * [http://rubyeclipse.sourceforge.net/ Ruby Development Toolkit] ---- The following contents are retrieved from [source:trunk/browser/README]: = Build & Debug (with Eclipse) = 1. Install GWT (Google Web Toolkit. version 1.4.10 or higher) 1. In Window->Preference->Java->Classpath Variables, add a new variable as follows: {{{ GWT_HOME=(your GWT installation folder) }}} 1. (debug) launch Debug -> GenomeBrowser_gwtshell, which displays GWT debug shell and genome browser interface. = Build (from command line) = 1. Download the Google Web Toolkit from the web. Version 1.4.10 or higher is required. 1. Copy 'build.properties.sample' to 'build.properties' 1. Open the 'build.property' file, then change the gwt.home variable to the path of your GWT (Google Web Toolkit) folder, and comment out appropriate 'gwt.dev' lines to select GWT develeopement library on your OS. - e.g. (in Windows) {{{ gwt.home=C:/(somewhere in your PC)/gwt-windows-1.4.10 gwt.dev=gwt-dev-windows.jar #gwt.dev=gwt-dev-mac.jar #gwt.dev=gwt-dev-linux.jar }}} 1. {{{ > ant compileJs }}} 1. Open www/org.utgenome.gwt.utgb.UTGB/UTGB.html in your web browser (IE, Firefox, etc.) = Deploy = 1. Install Tomcat 5.0 (or higher) Java web server. 1. Edit your build.properties file, and modify the following variables: {{{ TOMCAT_HOME=(Tomcat Installation folder) tomcat.base.url=http://localhost:8080 tomcat.manager.username=(tomcat manager username) tomcat.manager.password=(tomcat manager password) }}} 1. Set up GWT as described above (the section on build from command line) 1. {{{ > ant deploy }}} * This generates a war file (web application archive), and deploy the war file in the tomcat server = Trouble Shooting = * Q: GWT Shell invokes a following error: {{{ [ERROR] Errors in 'jar:file(...)UTGB%20Common/lib/gwt-dragdrop-1.0RC.jar!/com/allen_sauer/gwt/dragdrop/client/DeferredMoveCommand.java' }}} * A: Your GWT version must be higher than 1.4.10 in order to use drag & drop facility. * Q: out of memory error when running Ant. * A: create a $HOME/.ant/ant.conf file, then write the following line: {{{ ANT_OPTS="-Xmx512M" }}}