Skip to main content
Jump to: navigation, search

STEM Installation Guide

Revision as of 20:48, 18 December 2007 by (Talk | contribs) (updated required projects)

STEM Contents Page

STEM Installation Guide

Installing Java™ JVM

STEM requires at least Java Version 1.5. It also appears to run on Java 1.6. IBMers should obtain the IBM version of Java 1.5. Others can use either IBM's Java 1.5 or the Sun Java 1.5 [[1]].

For MacOS, you should install Java SE 1.6

Installing the Eclipse Environment

If you might contribute to STEM development or if you want to always have the most recent code then you will need to install Eclipse.

Go to STEM Eclipse Setup

Obtaining the STEM source code

If you want to obtain the latest version of the STEM source code then you will need to obtain it from the Eclipse CVS repository.

Goto STEM Source Code

Installing/Running the STEM application

There are 2 ways to run STEM. One is as a STEM user that has installed Java 1.5 and is running Windows or Linux, and wants to use STEM as a modeling and simulation tool. They would download the STEM application and run it as a standalone application.

The other way to run STEM is as a STEM developer that has installed Java, the Eclipse development tools and the STEM source code. These users can be running on any platform supported by Eclipse.

Running Stem as a standalone application

If you want to first run STEM as an application then we provide a standalone version of STEM that only requires that you have Java 1.5 or higher installed.

You can get the file by going to the project page: and then clicking on Getting Started. From the Getting Started page you can download either a zip file for Windows XP/Vista or a gz file for Linux x86. If you are running on another platform, you will have to download the STEM source code and build STEM for your platform.

Once you have downloaded the zip file, (Warning: the download is a very large file and will take awhile to download.) you would "unzip" the file into your favorite directory.

This is a self-contained stand-alone version of STEM that is launched by double-clicking on the "STEM.exe" executable file in the root directory of the expanded archive. You'll need to have Java 1.5 installed for it to run, but if you do and it's on the path, you should be greeted by the STEM "splash screen" while it starts up. The Eclipse application at this point shows the STEM Simulation Perspective.
STEM Simulation screen. Simulation1.jpg

  • The Help->Help Context menubar selection has extensive information on running STEM.
  • The following "views" are shown in the STEM Simulation window.
    • Map
      Canvas that will show the image of the geographic area where the simulation is being run.
    • Simulation Control view
      Panel that both describes the status of the simulation and provides buttons to start and stop the simulation.
    • Scenarios
      The Scenarios window is use to select a prebuilt scenario for a simulation. By selecting leafs in the tree you can discover an existing scenario for running a simulation. Select the scenario of choice and click the Run or Advance icon on the toolbar.
    • ErrorLog
      This log will contain information about any errors that occur while running the application. If things don't work as you expect, check this view to see if there are any errors or exceptions that have occurred. Note that the ErrorLog on the secondary Eclipse will show errors and exceptions that occur in the application being tested but stdout/stderr will be sent to the Console of the Primary Eclipse. Also if an exception is caught by the application and not passed to the built in log facility it will only show up on the Primary console. Likewise, if an exception is not caught and sent to stdout/stderr then it will only show up on the secondary ErrorLog. Confusing!

There are also secondary application that may be selected from the Windows menu.

  • Select windows
    • Select GoogleEarth View
      This is an interface between STEM and the GoogleEarth application.

The basic idea of the GoogleEarth Interface is to allow the information about the geographic spread of diseases to be reflected on the GoogleEarth Web map. Detailed instructions for using the GoogleEarth Interface are included below. [2]

Preparing to Run STEM as a STEM developer

It is possible to run STEM as an application from the Eclipse Development environment without actually creating the standalone Stem application. Earlier sections described how to set up the environment and checkout the STEM source files. Once you have done that you will want to run the application using the compiled source. A later section will describe how to build the standalone Stem application.

This section will describe how to run and test the STEM application from the source projects. It assumes that you have downloaded the following projects from CVS and the build was error free.

  • STEM projects (required)
    • org.eclipse.ohf.stem.core
    • org.eclipse.ohf.stem.definitions
    • org.eclipse.ohf.stem.diseasemodels
    • org.eclipse.ohf.stem.diseases
    • org.eclipse.ohf.stem.doc
    • org.eclipse.ohf.stem.feature
    • org.eclipse.ohf.stem.feature.core
    • org.eclipse.ohf.stem.feature.prereq
    • org.eclipse.ohf.stem.geography
    • org.eclipse.ohf.stem.sequencers
    • org.eclipse.ohf.stem.ui
    • org.eclipse.ohf.stem.ui.diseasemodels
    • org.eclipse.ohf.stem.ui.reports

  • STEM projects (optional)
    • org.eclipse.ohf.stem.releng
    • org.eclipse.ohf.stem.sample
    • org.eclipse.ohf.stem.tests.core
    • org.eclipse.ohf.stem.tests.definitions
    • org.eclipse.ohf.stem.tests.diseasemodels
    • org.eclipse.ohf.stem.tests.sequencers
    • org.eclipse.ohf.stem.tests.ui
    • org.eclipse.ohf.stem.ui.nl1
    • org.eclipse.ohf.stem.utility

Preparing the STEM scenario

The first step is to run a utility that will build the scenarios that you will later use to run the STEM application.

  • Select the project
    • Select the update.xml file from the project
    • RightClick and select run As: ant build... (note the ...)
    • On the 'Modify attributes and launch screen:
      • select JRE
        • Specify Separate JRE (should show some version of JDK 1.5 or later)
        • For VM arguments: Specify -Xmx512m (or more)
      • select Properties
      • verify that eclipse.contrib and eclipse.home2 are defined. If not, refer to [3]
      • Select Run

It will churn away for awhile (maybe 10 minutes or more) displaying a lot of console output ending with:

 Total time: n minutes n seconds

If you get error messages about eclipse.home2 then refer to [4]

Start STEM product

Once the scenario is built, you need to startup STEM and run the simulation.

  • Go to the Package Explorer view
  • Select the org.eclipse.ohf.stem.ui project
  • Select the appropriate .product file for your platform.
    • Select stem.product for Windows
    • Select stemLinux.product for Linux x86
    • Select stemMacOS.product for MacOS
    • For other platforms, ??? To be Added ???
  • From the launcher tab
    • specify Program arguments "-consoleLog"
    • specify VM arguments "-Xmx600M"
  • From the Overview tab
    • select Launch or Launch in Debug mode.

It should build a new image of STEM and launch it.

The system will grind away and start a new instance of Eclipse with support just for STEM. If you have not done this before, you should be aware that this new instance is being controlled by your primary Eclipse instance and console output from your application will be sent back to your primary Eclipse. Also you can use the debugger and the debugging controls for the application will be on the primary eclipse window as the application runs in the secondary Eclipse.

You are now running the STEM application. See the instructions for running the Standalone version of STEM [5]

Also, use the Help->Help Context from the menubar to get extensive Help information.

Generate JavaDoc for STEM

You can easily generate JavaDoc for STEM with the following process.

  • Select the org.eclipse.ohf.stem.doc project
    • Select the javadoc.xml file from the project
    • RightClick and select run As: ant build

This will generate javadoc in org.eclipse.ohf.stem.doc/javadoc and it can be displayed by selecting the index.html member.

Understanding stem.product

The file stem.product in org.eclipse.ohf.stem.ui is a very important piece of the process to launch an application. However it appears to be a trial and error process to generate the list of plugins.

Also it is important to note that there seems to be a difference between launching STEM from "Run" on the eclipse menubar and from the "launch" or "Debug" buttons on the "Overview" tab from the org.eclipse.ogh.stem.ui stem.product selection.

If you update the list of plugins in the "Configuration" tap for stem.product that does not update the list of plugins that are used when you select a launch entry from the menubar. However, using the launch entry from stem.product overview appears to then update the menubar launch. Very confusing!!!

The following section is to give some info about the reason for including each of the plugins. There are lots of ? because short of trying it without the plugin there is no way to be sure.

Col 1 has the following codes
R  Required for base system 
R? probably required for base
H  Help
W  Webserver
O  OHF STEM required projects for RCP
-  Platform specific
?  unknown but appears to be required
?? unknown and not tried to run without. 
?     <plugin id=""/>
B?    <plugin id="com.lowagie.itext"/>     ** only for specific functions
H     <plugin id="javax.servlet"/>
H?    <plugin id="javax.servlet.jsp"/>
R?     <plugin id="org.apache.ant"/>
??    <plugin id="org.apache.batik.pdf"/>
??    <plugin id="org.apache.commons.codec"/>
??    <plugin id="org.apache.commons.el"/>
??    <plugin id="org.apache.commons.logging"/>
H?    <plugin id="org.apache.jasper"/>
H     <plugin id="org.apache.lucene"/>
H?    <plugin id="org.apache.lucene.analysis"/>
??    <plugin id="org.apache.xerces"/>
??    <plugin id="org.apache.xml.resolver"/>
??    <plugin id="org.eclipse.ant.core"/>
B     <plugin id="org.eclipse.birt.chart.device.extension"/>
B     <plugin id="org.eclipse.birt.chart.device.svg"/>
B     <plugin id="org.eclipse.birt.chart.device.swt"/>
B     <plugin id="org.eclipse.birt.chart.engine"/>
B     <plugin id="org.eclipse.birt.chart.engine.extension"/>
B     <plugin id="org.eclipse.birt.chart.ui"/>
B     <plugin id="org.eclipse.birt.chart.ui.extension"/>
B     <plugin id="org.eclipse.birt.core"/>
B     <plugin id="org.eclipse.birt.core.ui"/>
R?    <plugin id="org.eclipse.core.commands"/>
R?    <plugin id="org.eclipse.core.contenttype"/>
R?    <plugin id="org.eclipse.core.databinding"/>
R?    <plugin id="org.eclipse.core.expressions"/>
?     <plugin id="org.eclipse.core.filesystem"/>
-     <plugin id="org.eclipse.core.filesystem.win32.x86" fragment="true"/>
R?    <plugin id=""/>
R     <plugin id=""/>
R?    <plugin id="org.eclipse.core.resources"/>
R?    <plugin id="org.eclipse.core.resources.compatibility" fragment="true"/>
R?    <plugin id="org.eclipse.core.resources.win32" fragment="true"/>
R?    <plugin id="org.eclipse.core.runtime"/>
R?    <plugin id="org.eclipse.core.runtime.compatibility.auth"/>
R?    <plugin id="org.eclipse.core.runtime.compatibility.registry" fragment="true"/>
R?    <plugin id="org.eclipse.core.variables"/>
R?    <plugin id="org.eclipse.emf.common"/>
R?    <plugin id="org.eclipse.emf.common.ui"/>
R?    <plugin id="org.eclipse.emf.ecore"/>
R?    <plugin id="org.eclipse.emf.ecore.change"/>
R?    <plugin id="org.eclipse.emf.ecore.xmi"/>
R?    <plugin id="org.eclipse.emf.edit"/>
R?    <plugin id="org.eclipse.emf.edit.ui"/>
R?    <plugin id=""/>
R?    <plugin id="org.eclipse.equinox.common"/>
H     <plugin id="org.eclipse.equinox.http.jetty"/>
H     <plugin id="org.eclipse.equinox.http.registry"/>
H     <plugin id="org.eclipse.equinox.http.servlet"/>
H     <plugin id="org.eclipse.equinox.jsp.jasper"/>
H     <plugin id="org.eclipse.equinox.jsp.jasper.registry"/>
?     <plugin id="org.eclipse.equinox.preferences"/>
?     <plugin id="org.eclipse.equinox.registry"/>
H     <plugin id=""/>
H     <plugin id=""/>
H     <plugin id=""/>
H     <plugin id=""/>
H     <plugin id=""/>
?     <plugin id="org.eclipse.jdt.core"/>
?     <plugin id="org.eclipse.jface"/>
?     <plugin id="org.eclipse.jface.databinding"/>
?     <plugin id="org.eclipse.jface.text"/>
O     <plugin id="org.eclipse.ohf.stem.core"/>
O     <plugin id="org.eclipse.ohf.stem.definitions"/>
O     <plugin id="org.eclipse.ohf.stem.diseasemodels"/>
O     <plugin id="org.eclipse.ohf.stem.diseases"/>
O     <plugin id="org.eclipse.ohf.stem.geography"/>
O     <plugin id=""/>
O     <plugin id="" fragment="true"/>
O     <plugin id="org.eclipse.ohf.stem.sequencers"/>
O     <plugin id="org.eclipse.ohf.stem.ui"/>
O     <plugin id="org.eclipse.ohf.stem.ui.diseasemodels"/>
O     <plugin id=""/>
O     <plugin id="org.eclipse.ohf.stem.ui.nl1" fragment="true"/>
O     <plugin id="org.eclipse.ohf.stem.ui.reports"/>
R?    <plugin id="org.eclipse.osgi"/>
R?    <plugin id=""/>
R?    <plugin id="org.eclipse.osgi.util"/>
R?    <plugin id="org.eclipse.pde.runtime"/>
R?    <plugin id="org.eclipse.swt"/>
-     <plugin id="org.eclipse.swt.win32.win32.x86" fragment="true"/>
??     <plugin id=""/>
?     <plugin id="org.eclipse.text"/>
W     <plugin id="org.eclipse.tomcat"/>
R?    <plugin id="org.eclipse.ui"/>
R?    <plugin id="org.eclipse.ui.forms"/>
R?    <plugin id="org.eclipse.ui.ide"/>
R?    <plugin id="org.eclipse.ui.views"/>
-     <plugin id="org.eclipse.ui.win32" fragment="true"/>
R?    <plugin id="org.eclipse.ui.workbench"/>
?     <plugin id="org.eclipse.update.configurator"/>
?     <plugin id="org.eclipse.update.core"/>
?     <plugin id="org.eclipse.update.core.win32" fragment="true"/>
?     <plugin id="org.eclipse.update.ui"/>
??     <plugin id="org.eclipse.xsd"/>
??    <plugin id="org.junit"/>
H     <plugin id="org.mortbay.jetty"/>
B     <plugin id="org.mozilla.rhino"/>
??    <plugin id="org.w3c.dom"/>

The following plugins get added to stem.product by the "add required plugins" but they should be deleted because they are not needed and caused error messages at startup. They appear to require Java 6


Back to the top