Queue with IntelliJ IDEA

From GSA
Jump to: navigation, search

Queue works best with IntelliJ IDEA Community Edition (free) or Ultimate Edition installed with the Scala Plugin enabled. Once you have downloaded IntelliJ IDEA follow the instructions below to setup a Sting project with Queue and the Scala Plugin.

Contents

Setting up Queue

Project Libraries
Module Sources
Module Dependencies
Scala Facet

Build Queue on the Command Line

  • Build Queue from the command line with ant queue, so that
    • The lib folder is initialized including the scala jars
    • The queue-extensions for the GATK are generated to the build folder

Add the scala plugin

  • In IntelliJ open the menu File > Settings
  • Under the IDE Settings in the left navigation list select Plugins
  • Click on the Available tab under plugins
  • Scroll down in the list of available plugins and install the scala plugin
  • If asked to retrieve dependencies, click No. The correct scala libraries and compiler are already available in the lib folder when you built Queue from the command line
  • Restart IntelliJ to load the scala plugin

Creating a new Sting Project including Queue

  • Select the menu File... > New Project...
  • On the first page of "New Project" select
    • Create project from scratch
    • Click Next >
  • On the second page of "New Project" select
    • Set the project Name: to Sting
    • Set the Project files location: to the <directory where you checked out the Sting git repository>, for example /Users/jamie/src/Sting
    • Uncheck the Create Module
    • Click Finish
  • The "Project Structure" window should open. If not open it via the menu File > Project Structure
  • Under the Project Settings in the left panel of "Project Structure" select Project
    • Make sure that Project SDK is set to a build of 1.6
    • If the Project SDK only lists <No SDK> add a New > JSDK pointing to /System/Library/Frameworks/JavaVM.framework/Versions/1.6
  • Under the Project Settings in the left panel of "Project Structure" select Libraries
    • Click the plus (+) to create a new Project Library
    • Set the Name: to Sting/lib
    • Select Attach Jar Directories
    • Select the path to lib folder under your SVN checkout
  • Under the Project Settings in the left panel of "Project Structure" select Modules
  • Click on the + box to add a new module
  • On the first page of "Add Module" select
    • Create module from scratch
    • Click Next >
  • On the second page of "Add Module" select
    • Set the module Name: to Sting
    • Change the Content root to: <directory where you checked out the Sting SVN repository>
    • Click Next >
  • On the third page
    • Uncheck all of the other source directories only leaving the java/src directory checked
    • Click Next >
  • On fourth page click Finish
  • Back in the Project Structure window, under the Module 'Sting' , on the Sources tab make sure the following folders are selected
    • Source Folders (in blue):
      • public/java/src
      • public/scala/src
      • private/java/src (Broad only)
      • private/scala/src (Broad only)
      • build/queue-extensions/src
    • Test Source Folders (in green):
      • public/java/test
      • public/scala/test
      • private/java/test (Broad only)
      • private/scala/test (Broad only)
  • In the Project Structure window, under the Module 'Sting' , on the Module Dependencies tab select
    • Click on the button Add...
    • Select the popup menu Library...
    • Select the Sting/lib library
    • Click Add selected
  • Refresh the Project Structure window so that it becomes aware of the Scala library in Sting/lib
    • Click the OK button
    • Reopen Project Structure via the menu File > Project Structure
  • In the second panel, click on the Sting module
    • Click on the plus (+) button above the second panel module
    • In the popup menu under Facet select Scala
    • On the right under Facet 'Scala' set the Compiler library: to Sting/lib
    • Click OK

Enable annotation processing

  • Open the menu File > Settings
  • Under Project Settings [Sting] in the left navigation list select Compiler then Annotation Processors
  • Click to enable the checkbox Enable annotation processing
  • Leave the radio button obtain processors from the classpath selected
  • Click OK

Debugging Queue

Adding a Remote Configuration

Queue Remote Debug
  • In IntelliJ 10 open the menu Run > Edit Configurations
  • Click the gold [+] button at the upper left to open the Add New Configuration popup menu
  • Select Remote from the popup menu
  • With the new configuration selected on the left, change the configuration name from 'Unamed' to something like 'Queue Remote Debug'
  • Set the Host to the hostname of your server, and the Port to an unused port. You can try the default port of 5005
  • From the Use the following command line arguments for running remote JVM copy the argument string
  • On the server, paste / modify your command line to run with the previously copied text, for example java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 Queue.jar -S myscript.scala ...
  • If you would like the program to wait for you to attach the debugger before running, change suspend=n to suspend=y
  • Back in IntelliJ click OK to save your changes

Running with the Remote Configuration

  • Ensure Queue Remote Debug is selected via the configuration drop down or Run > Edit Configurations.
  • Set your breakpoints as you normally would in IntelliJ
  • Start your program by running the full java path (with the above -Xdebug -Xrunjdwp ...) on the server
  • In IntelliJ go to the Run > Debug
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox