Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

work in progress

...

Tip

If you are building sipXecs older than 4.5, look at this page's history for any specific details.

General Remarks

You should feel free to use whatever developement environment suits your needs. If you happen to use NetBeans, emacs or anything else please share your experience. Let sipx-dev@sipfoundry.org us know if you would like to keep configuration files for your environment in sipXconfig subversion repository.

...

  • excellent code browser
  • built-in refactoring support
  • code formatter that can be configured to comply with sipX coding standards
  • unit test support - writing and executing unit test from IDE
  • good subversion plugin - commit, update, diff and graphical merge support
  • other plugins for libraries and technologies used in sipXconfig: SQL Explorer, Spring, Tapestry, XML etc.
  • decent remote debugging support
  • decent GWT debugging support

Installation

Get the latest stable build of Eclipse and install it on the system. Some Linux distributions (Fedora Core 4) include eclipse. However Eclipse install without any problems on Linux, Windows and Mac OS X.

...

Eclipse has a notion of workspaces and project. Workspace is a set of related projects that share common options (compilation, code formatting etc.). From my experience it's best to have one workspace per subversion branch (i.e. a separate workspaces for main, 2.8, 2.6 etc.)

Configuration

Set common configuration options.

Classpath

  1. Go to Windows->Preference screen
  2. Select Java->Build Path->Classpath Variables and add the following
Panel

SIPX_SRC_TOPSRCDIR=path to top source directory SIPX

SIPXCONFIG_BUILD_TOP=path to top build directory

If you are working on sipXconfig 4.0 or earlier you also need:

Panel

SIPX_CONFIG=path to sipXconfig directory - SIPX_SRC_TOP/sipXconfig
SIPX_COMMONS=path to sipXcommons directory - SIPX_SRC_TOP/sipXcommons
SIPX_BUILD=path to sipXconfig build output - SIPX_BUILD_TOP/sipXconfig

The sipXconfig directory is located where you checked it out using Subversion or git.
You need a separate Eclipse workspace for each Eclipse branch, since each branch will have a different SIPX_SRC_TOP setting.

Panel

JAVA_LIBDIR=path to the default jar installation directory

On most systems it will be: /usr/share/java. If your distribution is using jpackage-utils to install java packages you can probably find the proper value for this property by running:

Panel

grep JAVA_LIBDIR /etc/java/java.conf

If you have source code for Tapestry, Spring, and other modules, then set the LIB_SRC variable to point to the parent directory of the directory in which sources are kept, for example:

Panel

LIB_SRC=/opt/libsrc

...

SRCDIR=SIPX_SRCDIR/sipXconfig used to avoid some circular imports in Eclipse
SIPX_BUILDDIR=path to top build directory
SIPX_JAVADIR=path to the share/java directory where you install sipxecs. Example: /usr/local/sipx/share/java
LIBSRC=path where you want to store source code for all the dependencies. Not required, but very useful for stepping through code. Example: /home/dhubler/libsrc

You need a separate Eclipse workspace for each source code directory, since each branch will have a different SIPX_SRCDIR setting.

Classpath variables used in other projects:

Panel

SIPX_PREFIX=path to top install directory
OPENFIRE-ROOT=path to openfire root (usually /opt/openfire)

Java Code Style Options

Go to Windows->Preferences->Java->Code Style

...

Consider configuring Save Actions to clean-up changed files and format changed lines in the file.

Java Compatibility Options

SipXconfig requires Java 1.6:

  1. Go to Windows->Preferences->Java->Compiler and check that the "compiler compliance level" is set to 1.6.
  2. Go to Windows->Preferences->Java->Installed JREs and select a 1.6 JRE. If there is no 1.6 JRE on your computer, then you will need to install one.

Other useful options

Plugins

Installing these plugins is optional, but they do have plenty of features that would simplify developement.

...

You can now get the following plugins:

  • [Subclipse|oldxx:http
    //subclipse.tigris.org] : If you use subversion you need to install this plugin. On top of nice repository browser and quite a few useful feature - such as history and graphical diff - the most important thing is that if your refactoring will change or move the files subversion will be aware of that (git tracks all the moves and renames automatically, so if you use git you do not need any special Eclipse plugin for refactoring).

The imported eclipse.update-sites.xml file contains two entries for Subclipse - one for Subclipse 1.0.x, and one for Subclipse 1.2.x. 1.2.x series of Subclipse requires Eclipse 3.2. If you are running an older version (3.0/3.1) of Eclipse, you should install the 1.0.x Subclipse. You can safely unselect Mylan and Buckmaster optional packages.

Subclipse is now distributed with JavaSVN which provides a platform independent bindings for subversion client. Alternatively you can install platform specific bindings but it is harder to configure and it does not seem to have significant performance benefits. If for some reason default JavaSVN bindings do not work for you, try this:

  • Install platform specific bindings - on Fedora you can use yum:
    Panel

    yum install subversion-javahl

  • Modify eclipse command line - add
    Panel

    -vmargs -Djava.library.path=/usr/lib

  • You'll need to delete any workspaces you may have created or you'll get an error regarding duplicate resources found in "src/.svn/..."
  • Restart Eclipse.
  • [Spring IDE|oldxx:http
    //springframework.sourceforge.net/spring-ide/eclipse/] : Spring framework support (bean file verification)

...

  • Spring IDE : Spring framework support (bean file verification)

Other plugins have to be downloaded and install manually (by copying the plugin to /path/to/eclipse/plugins directory).

Checkstyle Plugin

Step 1. Install checkstyle plugin from with update URL: http://eclipse-cs.sf.net/update/
Step 2. Go to Window->Preferences->Checkstyle
Step 3. Click "New..." in the "Global Check Configurations" and add new "External Configuration File" entry call "sipxecs" with location specifying path to your-source-directory/config/checkstyle/checktyle.xml. Before leaving this dialog, click on "Additional properties", and specify your-source-directory/config/checkstyle for variable "top.dir"
Step 4. Click on the new "sipxecs" Check Configuration and "Set as Default" button.

Image Added

Projects

The last step is opening sipXconfig projects. All necessary configuration files are kept in subversion repository (these are .project and .classpath file in sipXconfig subdirectories) - it's easy to open projects in Eclipse by importing them.

  • go to File->Import...
  • select General->Existing Project into Workspace
  • browse for your sipXconfig sipXecs source code directory (the same as set in SIPX_CONFIG SRCDIR property above) and press OK
  • Eclipse 3.1 will find all sipXconfig eclipse projects (neoconf, web, profilegenerator etc.), older versions of Eclipse will prompt you for each project separatelypress Select All, and , select only the project you think you'll need. You will almost alway need sipXcommons project because most project will require that project to be loaded.
  • press Finish

All projects are automatically compiled in background. You are ready to go.

Using Eclipse for C/C++ projects

Eclipse can be used as a C/C++ development environment. You need to install the C/C++ Development Toolkit (CDT) that can be found at http://www.eclipse.org/cdt/ .
You will need to get Eclipse (version 3.3.0 at least) (http://www.eclipse.org/downloads/) and the Eclipse CDT (download.eclipse.org/tools/cdt/releases/europa).

Please see this document for more details.

Eclipse on Gentoo

...

.

...