Using Version Qualifiers

Eclipse bundles and features have version numbers of the form major.minor.micro.qualifier.  The qualifier segment of the version is often used to indicated a specific build.  If you set your feature or plug-in version qualifier to "qualifier" (i.e. a version of 1.0.0.qualifier), then PDE build will automatically replace the word "qualifier" with a generated qualifier.

Controlling the Generated Qualifier

A feature or plug-in can control its qualifier by setting the property "qualifier" in its build.properties file. There are are a couple of different cases for the value of this property:

qualifier = noneSets the qualifier to be empty. (i.e. "1.2.3.qualifier" becomes "1.2.3")
qualifier = contextSets the qualifier to be the context qualifier. See below for the value of the context qualifier.
not setIf the "qualifier" property is not set, this is equivalent to setting qualifier = context.
qualifier = v12345Any other value sets the qualifier to be that value.

The Context Qualifier

The value of the generated context qualifier is determined by the first of the following items that apply:
  1. If the property forceContextQualifier is set in your builder's configuration build.properties file,  then the value of this property is used as the qualifier.  This property can also be set on the command line with -D when invoking ant.
  2. If you are using map files to fetch your bundles from a repository, then the tag that was used to fetch the bundle will be used as the qualifier.
  3. If neither forceContextQualifier nor map files are used, then the qualifier will be a time stamp in the form YYYYMMDDHHMM (i.e. 200605121600)

Feature Version Suffixes

You can turn on the generation of qualifier suffixes for features by setting the property generateFeatureVersionSuffix=true in the build configuration build.properties file.

The idea of a version is that it should increment each time something changes, the version qualifier increments and captures changes from build to build.  Features rarely change, however, they do contain plug-ins which may change often.  When version suffixes are turned on, a feature version will have the form major.minor.micro.qualifier-suffix.   The suffix is in effect the sum of the version qualifiers of all the features and plug-ins included by the feature.  This means that when one of the included plug-ins increments its version, then the version of the feature will automatically increment as well.  This is particularly useful when the feature is deployed via an update site.

Final Versions

Occasionally there may be custom build steps that may require the actual final version used in the build.  When the property generateVersionsLists is set, PDE Build will generate properties files containing the versions of the features and plug-ins that were built.  These properties files can be loaded using the ant property task.

The files are named: finalPluginsVersions.properties, finalPluginsVersions.<config>.properties, finalFeaturesVersions.properties, and  finalFeaturesVersions.<config>.properties.  finalPluginsVersions.properties and finalFeaturesVersions.properties contain the versions for all of the plug-ins and features that were built.  The <config> properties files contain the versions of plug-ins and features for specific build configurations.

The properties in these files have the form:

    <bundleSymbolicName> = <version>
    <bundleSymbolicName>_<first 3 segments of version> = <version>
If more than one versions of a plug-in or feature exists, then <bundleSymbolicName>=<version> refers to the plug-in or feature with the highest version. Example:
    org.eclipse.pde.build = 3.3.0.v20070524
    org.eclipse.pde.build_3.3.0=3.3.0.v20070524
    org.eclipse.pde.build_3.2.1=3.2.1.r321_v20060823