Jump to: navigation, search

DTP Releng Instructions

Revision as of 00:51, 16 April 2008 by Xgu.actuate.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

How to Build DTP from CVS

This page mainly decribes how to set up headless PDE build system for DTP and start the build. Since the build server is a Linux server, below instructions are based on Linux environment.


1. CVS version 1.10 or higher.
2. 1.4.2 level JDK. (DTP 1.6 uses Java compiler compliance level 1.4 .)
3. Info-Zip zip and unzip.
4. org.eclipse.releng.basebuilder.
5. org.eclipse.datatools.releng.builder.
6. Eclipse 3.3.2 SDK
7. EMF 2.2(emf+sdo)
8. GEF 3.3


1. Add the zip, unzip, tar, gzip and cvs executables to your path as required.
2. Add the jre/bin directory of the installed JDK to your path.
3. Check out org.eclipse.releng.basebuilder and org.eclipse.dtp.releng.builder into local server.
We recommend to use tagged version of org.eclipse.releng.basebuilder. The HEAD version is not stable and may have changes which will lead to build failure. The examples below are tested with tag version vI20070209-1006
4. Create a new directory as baseLocation.
5. Extract Eclipse SDK, EMF, GEF into baseLocation. The root folder should be plugins/ and features/.

Start the Build

cd to org.eclipse.dtp.releng.builder directory and execute the following command to start the build

  ./bootstrap.sh N

This shell script actually excutes below command, which will invode the top-level build script buildAll.xml:

  buildCommand="$antRunner -q -buildfile buildAll.xml $mail $testBuild $compareMaps 
-DmapVersionTag=$mapVersionTag -DpostingDirectory=$postingDirectory
-Dbootclasspath=$bootclasspath -DbuildType=$buildType -D$buildType=true
-DbuildId=$buildId -Dbuildid=$buildId -DbuildLabel=$buildId -Dtimestamp=$timestamp $tagMaps
-DJ2SE-1.5=$bootclasspath_15 -DlogExtension=.xml $updateSite
-Djava15-home=$bootclasspath_15 -DbuildDirectory=/home/adb/releng.dtp/src
-DgroupConfiguration=true -DjavacVerbose=true
-Djvm15_home=$jvm15_home -DmapTag.properties=/home/adb/releng.dtp/org.eclipse.datatools.releng.builder/mapTag.properties
-Dbuild.date=$builddate -Dpackage.version=1.6M6-$timestamp
-DmapVersionTag=HEAD -DjavacTarget=1.4 -DjavacSource=1.4"

Note that, before starting the build, environment variable in bootstrap.sh and build.properties need to be set correctly according to your local server. Please seeAnt Properties Settings part.

Top-level Build Script Analysis

Let's take a look at the top-level buildAll.xml which drives the whole build actually.

       <target name="main" depends="init">
               <antcall target="buildDtpSdkAllFeature"/>
               <antcall target="buildDtpEnablementAllFeature"/>
               <antcall target="integrateDtpFeatures"/>
               <antcall target="Package"/>
               <antcall target="GenerateUpdateSite"/>

Target buildDtpSdkAllFeature will build the component dtp.sdk.all. The fake top-level feature org.eclipse.datatools.sdk-all.feature will drive the building of this component.

    <target name="buildDtpSdkAllFeature">
        <ant antfile="build.xml" dir="${basedir}">
            <property name="component" value="${eclipse.build.configs}/dtp.sdk.all" />

Target buildDtpEnablementAllFeature will build the component dtp.enablement.all. The fake top-level feature org.eclipse.datatools.enablement-all.feature will drive the building of this component.

    <target name="buildDtpEnablementFeature">
        <ant antfile="build.xml" dir="${basedir}">
            <property name="component" value="${eclipse.build.configs}/dtp.enablement" />

Target integrateDtpFeatures will unzip the output packages of above two component's build into same directory.

Target Package will generate the final delivery dtp package: sdk package and non-sdk package, including repackage the source plugins.

Target GenerateUpdateSite will generate the update site.

Component Introduction

From a user's perspective, DTP has two top level features: the SDK and Enablement. From a build perspective, Enablement depends on most of what is contained in the SDK feature.

So we have two component in org.eclipse.datatools.releng.builder and the build order is dtp.sdk.all -> dtp.enablement.all.

Component Description


This component will build the fake top-level feature org.eclipse.datatools.sdk-all.feature.
It includes the sub-feature:
source features

org.eclipse.datatools.sdk-all.feature will be deleted during packaging process.
The property file and build script locate in directory org.eclipse.datatools.releng.builder/eclipse/buildConfigs/dtp.sdk.all/


This component will build the fake top-level feature org.eclipse.datatools.enablement-all.feature
It includes the sub-feature:
source features of enablement features

org.eclipse.datatools.enablement-all.feature will be deleted during packaging process.
The property file and build script locate in directory org.eclipse.datatools.releng.builder/eclipse/buildConfigs/dtp.enablement.all/

Ant Properties Settings

The following properties are pre-defined in the build.properties file for the specified component. They can be overridden by setting them at the command line at build time or by changing them directly in the component's build.properties file. Value set in build.properties will be overriden by the one set in command line (or in bootstrap.sh).

Name Description


The os, ws and arch values of a pre-built eclipse component being compiled against. Currently DTP use *,*,*


A directory separate from buildDirectory which contains pre-built plugins and features against which to compile. The basedirectory must not contain any features, plugins or fragments which are already or will be located in the buildDirectory (see below).


Sets the value for the attribute "bootclasspath" in calls to the Ant <javac> task in a plugins' build.xml. Default set to ${java.home}/lib/rt.jar.


The absolute path to a working directory where the source for the build will be exported, where scripts will be generated and where the end products of the build will be located. On Windows systems, the path length should not exceed thirty characters due to path length limitations when compiling some classes in Eclipse.


The build name. Default set to timestamp.


Refers to the name of the directory which will contain the end result of the build. Default set to v${buildId}, ie."vbuild". This directory will be created inside the location specified by the ${buildDirectory} property.


Letters I, N, S, R or M are used in Eclipse builds to identify builds as being one of the following:

I - Integration
N - Nightly
S - Stable
R - Release
M - Maintenance

If set to N, all source will be checked out from the HEAD stream. In all other cases, tags as specifed in map files will be used when exporting plugins to the buildDirectory.


DTP use *,*,* in the dtp builder, which indicates platform independence.


Sets the value for the attribute "debug" in calls to the Ant <javac> task in a plugins' build.xml. Default set to on.


Sets the value for the attribute "failonerror" in calls to the Ant <javac> task in a plugins' build.xml. Build will continue even if there are compilation errors when this is set to false.


Sets the value for the attribute "source" in calls to the Ant <javac> task in a plugins' build.xml. Default set to 1.3. DTP set both javacSource and javacSource to 1.4


Sets the value for the attribute "target" in calls to the Ant <javac> task in a plugins' build.xml. Default set to 1.1. DTP set both javacSource and javacTarget to 1.4


Sets the value for the attribute "verbose" in calls to the Ant <javac> task in a plugins' build.xml. Default set to true.


Sets the tag attribute in a call to the Ant <cvs> task to check out org.eclipse.datatools.releng, the map file project on dev.eclipse.org used in the build.

Can be set to a specific tag to download the map files used for a previous integration build. Typically, these tags are in the form "r16_<date/timestamp>" for example "r16_v20030711-0800" will checkout the map files used to run the integration at the specified date/time.


Arguments to send to the zip executable. ie. zipargs=-y on Linux preserves symbolic links.

Generating Source Features and Plugins

We use PDE tools to generate source features and source plugins automatically. Please click here to see how this works.

build.properties of sdk-all.feature and enablement-all.feature has contained the setting for generating source features.

Build Server Directory Structure

Path Purpose/Description


Working directory of daily build


location to store Map files


location to store DTP plugins checked out from CVS


location to store DTP features checked out from CVS


where PDE basebuilder locates


where org.eclipse.dtp.releng.builderlocates


the output directory where exported and packaged zip can be found


baselocation where Eclipse platform/EMF/GEF prerequisites locate


where prerequisites plugins locate


where prerequisites features locate