Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: for the plan.

Jump to: navigation, search

COSMOS Design 260720

Associate properties in SDD topology with resource properties for resolution

This is the design document for bugzilla 2607320.

Change History

Name: Date: Revised Sections:
Jeff Hamm January 22, 2009
  • Initial version

Workload Estimation

Rough workload estimate in person weeks
Process Sizing Names of people doing the work
Design 2 Jeff Hamm, Brad Beck
Code 4 Jeff Hamm
Test 4 Jeff Hamm
Documentation 0
Build and infrastructure 0
Code review, etc.* 1

'* - includes other committer work (e.g. check-in, contribution tracking)


This enhancement will provide a basic implementation of the Change Resolver. The Change Resolver module is responsible for managing the resolution of a SDD as loaded by the Change Analyzer. It implements the multiple paths that must be taken when performing resolution which may result in multiple passes of resolution. In a SDD, the requirements and conditions that are defined and need to be resolved are directly associated with the resources defined in the topology.


  • The Change Resolver must interface with the Change Analyzer and leverage the data model of the SDD.
  • The Change Resolver must be able to load and run the appropriate resolver tasks as needed.
  • The Change Resolver will provide a model of the status of resolution after being run.
  • The Change Resolver must be able to make multiple passes at the SDD model provided by the Change Analyzer.
  • The Change Resolver must keep an aggregation of the results of resolution when making multiple passes.

Design details

  • The "ChangeResolver" class implements the base execution of resolution. When called, it accesses the data for the SDD model from the ChangeResolver module. Using this data, the ChangeResolver uses a collection of classes known as "Walkers" to traverse the various high level components of the SDD.
  • The "TopologyWalker" class is responsible for traversing the topology section of the SDD. Each identified resource or hosted resource is collected in a model maintained by the ChangeResolver class.
    • The TopologyWaker maintains the model of what variables and requirements are resolved for each topology entry.
    • The class is responsible for providing the model to external classes.
    • The class queries the model for requirements and variables that may have been resolved so that during multiple passes resources that have already been resolved do not have to be resolved again.
  • The "InstallableUnitWalker" class is responsible for traversing the installable unit section of the SDD. The installable unit section defines the variable and requirements that must be satisfied by the the resolvers.
    • As the InstallableUnitWalker discovers variables and requirements defined, it leverages various classes that know how to handle each.

Known Limitations

  • The full implementation of the SDD is a large task. This implementation does not address every possible type that may be defined in a SDD. This first implementation will resolve the following types
  • Topology
    • Resource
    • Hosted Resource
  • InstallableUnit
    • Variables
      • Conditional Variables
      • Expressions
      • Properties
    • Requirements
    • Alternatives

Impacts of this enhancement

  • This implementation will provide a basic framework for resolving a simple CL1 SDD xml.

Open Issues/Questions

Copyright © Eclipse Foundation, Inc. All Rights Reserved.