Login | Register
My pages Projects Community openCollabNet

argoeclipse
Wiki: DeveloperOverview

Edit this page | Links to this page | Page information | Attachments | Refresh page

 

Developer Information

ArgoEclipse is a collaborative open source project which welcomes new developers. We welcome all contributions big and small and run the project as a meritocracy. We strive for consensus based decision making.

Values

  • Mutual respect among developers and users
  • Roles and responsibilities assigned based on merit
  • Consensus based decision making
  • Excellence in design and coding
  • Respect for intellectual property, both ours and others
  • Strong open source values while encouraging appropriate commercial reuse and extension

Getting Started

Required Tools

To build ArgoEclipse, you will need the following tools:

  • Java 5 (a.k.a. Java 1.5) or later
  • Eclipse 3.5.1 or later
  • A Subversion client
  • Albireo 3.3 — a Swing/SWT compatibility plugin available from http://www.eclipse.org/albireo/downloads/

  • UML2 & EMF - Only needed for eUML subsystem (UML 2.x), not the default UML 1.4 MDR subsystem, but that's where we need the most help, so we recommend you install them.

  • (Optional) Mylyn task management plugin - only needed if submitting patches or making commits to Subversion

Development Environment Setup

If you've already got all the prerequisites installed, you can skip ahead to the next section.

  1. Install Java
  2. Install and configure Eclipse
    • Download Eclipse from http://www.eclipse.org/downloads/

    • Unpack into target directory
    • Configure a Java JRE — if you have multiple Java Runtime Environments available on your system, make sure that you have a Java 1.5 or later JRE configured and available for use in Eclipse. Configure this at Windows → Preferences → Java → Installed JREs
  3. Install Subclipse — The update site is http://subclipse.tigris.org/update_1.6.x for the latest kits and http://subclipse.tigris.org/update_1.4.x if you need compatibility with SVN 1.5 format repositories/servers. Don't worry about configuring any SVN repositories. This will get done automatically as part of the project source import.

  4. (Optional) Install Mylyn & Tigris Issuezilla connector — This is an optional task management plugin which integrates with the bug tracker on Tigris.

Target Environment Setup

By creating a separate target environment to build against, we can use a different (later) version of Eclipse than the one that we are targeting and we can also explicitly manage our dependencies so that we know when we are introducing new ones. This also allows us to know exactly what the minimal set of plugins is to build our standalone RCP applications.

For casual development, it is possible to skip this step and just develop against your working Eclipse installation, but we recommend all developers set up the following target environment. (If you decide to skip this, you will need to add the plugin dependencies from below (Albireo, UML2, & EMF) to your Eclipse installation).

We support Eclipse 3.7, so that will be our target version, even if you use a later version of Eclipse for development purposes. The downloads total 100 MB, so if you're on a slow internet connection, you might want to skim ahead and get them all started.

  1. Install RCP SDK
  2. Install RCP Delta Pack (optional - these components are needed to do doing cross development RCP builds for platforms other than yours)
    • At the bottom of the RCP SDK section download the RCP delta pack (the last item in the list - ~67 MB)
    • Unpack it into the same directory, overwriting any conflicting files
  3. Install Albireo. Download Albireo from http://www.eclipse.org/albireo/downloads/ and unpack into same target directory. (300 KB)

  4. Install UML2 and EMF plugins in target. Get the UML2 3.1.x runtime (currently UML 3.1.1) from the MDT downloads page at http://www.eclipse.org/modeling/mdt/downloads as well as the corresponding version of the EMF runtime (currently EMF 2.6.1) from the EMF downloads page http://www.eclipse.org/modeling/emf/downloads/ They total 8 MB.

The following to direct links were current when this was written, but may be fragile:

  1. Install additional plugins in target directory
    • Download the Eclipse Platform Runtime Binary (47 MB) from the same page that you copied the RCP kits from.
    • Unpack into a separate temporary directory <temp>.

    • Copy the following plugins from <temp>/eclipse/plugins to the plugins directory of your target. (There are Unix & DOS scripts available to do the copying for you in http://argoeclipse.tigris.org/source/browse/argoeclipse/trunk/www/resources/)

      • javax.servlet
      • org.apache.commons.el
      • org.apache.commons.logging
      • org.apache.jasper
      • org.apache.lucene
      • org.eclipse.ant.core
      • org.eclipse.compare
      • org.eclipse.core.filebuffers
      • org.eclipse.core.filesystem
      • org.eclipse.core.net
      • org.eclipse.core.resources
      • org.eclipse.core.variables
      • org.eclipse.equinox.http.jetty
      • org.eclipse.equinox.http.registry
      • org.eclipse.equinox.http.servlet
      • org.eclipse.equinox.jsp.jasper_*.jar
      • org.eclipse.equinox.jsp.jasper.registry_*.jar
      • org.eclipse.equinox.security
      • org.eclipse.jface.text
      • org.eclipse.help
      • org.eclipse.help.webapp
      • org.eclipse.ltk.core.refactoring
      • org.eclipse.ltk.ui.refactoring
      • org.eclipse.osgi.services
      • org.eclipse.search
      • org.eclipse.team.core
      • org.eclipse.team.ui
      • org.eclipse.text
      • org.eclipse.ui.cheatsheets
      • org.eclipse.ui.editors
      • org.eclipse.ui.forms
      • org.eclipse.ui.ide
      • org.eclipse.ui.intro
      • org.eclipse.ui.navigator
      • org.eclipse.ui.navigator.resources
      • org.eclipse.ui.views
      • org.eclipse.ui.workbench.texteditor
      • org.eclipse.update.core
      • org.eclipse.update.ui
      • org.mortbay.jetty

See TargetPlatformPluginList for a list of what your completed directory should look like.

Download Sources and Build ArgoEclipse

After your development environment is set up, you can download and build ArgoEclipse in a couple of easy steps.

Here are a few steps in which you'll import the code:

  1. Choose a team project set file that suits your needs from the directory http://argoeclipse.tigris.org/source/browse/argoeclipse/trunk/www/resources/ :

    1. The main workspace projects (code and code related resources) - RECOMMENDED
    2. The web workspace projects (contains lots of MB with videos, docs, update site and kits) - most developers won't need this, so you can save the bandwidth and choose the main workspace projects;
    3. All workspace projects (main and web);
  2. Open Eclipse, go to File → Import, and in the Import wizard choose Team → Team Project Set, then click Next;
  3. Select the file you just downloaded and continue with the instructions from the wizard;
  4. When you are prompted with a username and a password use the "guest" username and a null password;

With the main workspace projects you should have 12 new projects in your workspace:

NOTE: These are in the process of being renamed. Please see ProjectRenaming2009 for more information.

  • Seven ArgoEclipse projects - the first five are the core plugin and the last two are for the RCP application :

    • argoeclipse-argouml-resources — image icons and other static resources which are shared between both the !ArgoUML and ArgoEclipse plugins. This is a short term workaround to break a dependency cycle between the plugins.

    • argoeclipse-core — UI independent core functionality
    • argoeclipse-help — online help contributions
    • argoeclipse-feature — an Eclipse "feature" which contains all the ArgoEclipse, ArgoUML, and Albireo plugins

    • argoeclipse-ui — perspectives, views, menus and other user interface components
    • argoeclipse-rcp — Eclipse Rich Client Platform (RCP) application. Allows ArgoEclipse to be deployed as a standalone application with its own bundled copy of the Eclipse core.

    • org.argoeclipse.rcp.feature - Feature containing all required Eclipse plugins which are not included in the base RCP feature. This feature is bundled in an ArgoEclipse RCP build, but they're all normally available in an Eclipse IDE, so they're just called out as dependencies for that environment.

  • Eight ArgoUML projects
    • argouml-app — main ArgoUML application code
    • argouml-core-diagrams-sequence2 - sequence diagrams
    • argouml-core-infra — JARs for tools like log4j
    • argouml-core-model — Model subsystem interface and implementation independent pieces
    • argouml-core-model-mdr — ?NetBeans MDR implementation of Model subsystem

    • argouml-core-tools — Tools used for development, but not needed for deployment
    • argouml-build — project for building ArgoUML from the command line (optional)
    • argouml-core-model-euml — Eclipse UML2 implementation of model subsystem (optional)
  • ArgoUML plugin module projects (code generation & reverse engineering)

    • argouml-module-cpp
    • argouml-module-csharp
    • argouml-module-java
    • argouml-module-php
    • argouml-module-python

With the web workspace projects included you will have also argoeclipse-www, for the web site.

The projects should compile with no error. If you have problems building, the first thing to try is to clean all projects, if you still have trouble please send a description of the problem to the dev@argoeclipse.tigris.org mail list. Running the plugin

In the Debug menu you should see an "ArgoEclipse - debug" launch menu item, for launching ArgoEclipse as an Eclipse plugin and an "ArgoEclipse RCP - debug" launch menu item, for launching ArgoEclipse as an RCP product.

Headless build

During normal development the Eclipse IDE is used to build all the code, but sometimes it's desirable to be able to build from the command line. There's a "headless" (ie. non-GUI) build procedure in the org.argoeclipse.build project.

To run the headless build, change to that project's top level directory and run the build.sh/build.bat script, depending on your platform. This will build all ArgoEclipse plugins and features then package them all up with the necessary RCP components and create complete standalone kits for each of the target platforms (win32, linux, linux 64-bit currently).

There's a Hudson continuous integration server at http://hudsonci.kicks-ass.org:8086 which uses this build procedure to rebuild everything any time there's a source code change in ArgoEclipse or its dependencies in ArgoUML.

Contributing

Here's a ToDoList for this project. We welcome you as an ArgoEclipse developer.

DeveloperOverview (last edited 2012-07-04 20:15:22 -0800 by tfmorris)