3.4. Effective Buckminster

See also

Eclipse Buckminster, The Definitive Guide
The BuckyBook (PDF download, 286 pages)

3.4.1. Buckminster components

When you run a Buckminster CQuery, you specify the name of the component you wish to materialize. Buckminster will materialize the specified component, and all the components which it depends on, and then all the components they depend on, recursively, until all dependencies can be located.

Valid component names in a CQuery include (but are not limited to):

documentation.gda, documentation.diamond (component type=buckminster)
Eclipse projects containing the source (markup) for the documentation.
You need this if you want to make changes to the manuals - see Writing and Publishing Documentation.
diffcalc (component type=buckminster)
Eclipse project containing the Diffcalc software, and source (markup) for the Diffcalc documentation.
example-config (component type=buckminster)
Parent component for Eclipse projects containing the configuration and all required source for the example GDA beamline.
GDALargeTestFiles (component type=buckminster)
Eclipse project containing large files used in GDA testing.
thirdparty (component type=buckminster)
Eclipse project containing the static target platform.
uk.ac.diamond.sda.site (component type=eclipse.feature)
Parent component for Eclipse projects containing the SDA application and all its dependencies.
xx-config (component type=buckminster)
Parent component for Eclipse projects containing the configuration and all required source for a GDA beamline.
Examples: example-config, scisoft-config, i20-config

Any component name can be specified, provided there is an entry for it in the RMap which the CQuery points to.

3.4.1.1. Overriding what is materialized

By default, Buckminster will not materialize anything unless all the dependencies of the requested component can be materialized.

How to materialize just one component

Occasionally, you may want to materialize a single component, but not its dependencies. This can be done by editing the CQuery as follows:

  1. On the Advisor Nodes tab, add a new entry, with a Name Pattern matching the single component you require.
    Move the new entry to be the first (top) entry.
  2. On the Advisor Nodes tab, add a second entry, with a Name Pattern of .*, and select the Skip Component option.
    Move the new entry to be the second entry.
  3. Click Resolve and Materialize

How to handle missing components

If dependencies are missing, either remove the dependencies (probably from a feature.xml or MANIFEST.MF), or update the RMap so that the dependency can be found.

As an work-around, you can specify that missing dependencies be skipped, and Buckminster will then materialize the available components. Of course, since the missing dependencies will not be present in the workspace, you may get compilation or runtime errors.

Skipping specific dependencies can be done by editing the CQuery as follows:

  1. On the Advisor Nodes tab, add a new entry, with a Name Pattern matching one or more of the missing dependencies, and select the Skip Component option.
    Move the new entry to be the first (top) entry.
  2. Repeat for any other missing dependencies.

  3. Click Resolve and Materialize

Continuing materializing when there are errors

Select the CQuery option Continue on error (located at the bottom of the editor window).

3.4.2. Buckminster properties

When you open a Buckminster CQuery, the Properties tab contains a number of settings you can add or change. The default values are normally appropriate.

Property Valid values Meaning
Repository_branch   Specifies the version control branch for which components are downloaded
include_source yes
Retained for backward compatibility DO NOT CHANGE
option_Diamond_components_origin
diamond
opengda
Download components from DLS internal p2 server DEFAULT
Download components from openGDA p2 server
option_Diamond_subversion_access
true
false
Check out source from DLS repository DEFAULT
Download source from openGDA server (not all items available)
option_Eclipse_origin
diamond
eclipse
Download Eclipse components from DLS internal p2 server DEFAULT
Download Eclipse components from Eclipse Foundation website
option_Eclipse_release
helios
indigo
Target platform uses Eclipse Helios (3.6.2) DEFAULT
Target platform uses Eclipse Indigo (3.7) UNSUPPORTED