Custom Features

A feature is a software package that contains plug-ins, which in turn contain component implementations and libraries. A feature is identified by an ID, a multi-part version, and its dependencies on other features. There are two types of features: system and shared library.

System features are part of a TIBCO ActiveMatrix product or contain the drivers that are installed using TIBCO Configuration Tool. Shared library features contain component implementations and libraries. When you create a distributed application archive containing a composite, you can package the composite's required features in the application archive or you can package the features as a standalone distributed application archive.

When you upload a distributed application archive containing a composite in Administrator you can optionally import the features contained in the archive into the Administrator software repository. When you deploy an application, Administrator automatically distributes the features (and any features that it depends on) to the host that manages the nodes on which the application is distributed and installs the features on those nodes. You can also manually install features on the other nodes managed by that host.

Version Numbers

A version number is a multicomponent number of the form major. minor. service.qualifier. Changes in the value of each component reflect different types of changes in the versioned object:
  • major - Reflects breaking changes to the interface.
  • minor - Reflects non-breaking changes in an externally visible way. Examples of externally visible changes include binary compatible changes, significant performance changes, major code rework, and so on.
  • service - Reflects changes that are not visible in the interface. For example, a bug has been fixed in the code, documentation has changed, compiler settings have changed, and so on.
  • qualifier - Identifies when and where the object was built or packaged.
When you create an object in TIBCO Business Studio, the version is set to "1.0.0.qualifier". If the qualifier component of a version is set to "qualifier" when you create a DAA, TIBCO Business Studio replaces "qualifier" with a generated qualifier that defaults to a timestamp. You can customize the format of the generated qualifier by specifying a qualifier replacement.

Version Ranges

Some fields require you to specify a version range. For example, a feature may have a dependency on a range of versions of another feature. A version range  is an interval specified as: bracket lower limit, upper limit bracket, where bracket can be “[” or “]”, which denotes an inclusive end of the range or “(” or “)”, which denotes an exclusive end of the range. If one end of the range is to be included and the other excluded, the range can contain a square bracket with a round bracket.

There are three common use cases:
  • A strict version range, such as [1.0.0,1.0.0], denotes version 1.0.0 and only that version.
  • A half-open range, such as [1.0.0,2.0.0),which has an inclusive lower limit and an exclusive upper limit, denotes version 1.0.0 and any later version, up to, but not including, version 2.0.0.
  • An unbounded open range expressed as a single number such as 2.0.0, which is equivalent to the range [2.0.0, infinity), denotes version 2.0.0 and any later version.

A custom feature named compositeName.customfeature.id containing the component implementation plug-in is created automatically when you generate a component implementation. The custom feature file is stored in the Deployment Artifacts folder of the SOA project.