NBIComponentsDependencies

NBI Components Dependencies

Type of dependencies

Currently there are 3 types of dependencies between the components

  • requirement
  • conflict
  • install-after

requirement

Requirement dependency is specified using 4 parameters:

  • uid
  • version-lower
  • version-upper
  • version-resolved

Component N matches the requirement R if:

  • component`s uid equals to uid of the requirement, and its version is within the limits from version-lower to version-upper if version-resolved is not yet set, or
  • component`s uid equals to uid of the requirement, and its version equals to version-resolved.

Requirement is called resolved if only one of the all components was choosen and fixed (thus version-resolved has the value). Requirement resolving occurs during of component installation.

Having this type of dependency guarante that:

  • there is at least one component matches the requirement in the registry
  • if current component is set to be installed, then at least one anothere component matches the requirement should also be set to be installed, or there is already an installed component matching the requirement
  • all components matches the requirement and set to be installed, would be installed before the current component
  • if dependency is resolved and needed component is set to be uninstalled, then the current component would also set to be uninstalled
  • if dependency is not resolved, then at least one component matching that requirement would be in installed state till the current component is installed

conflict

Conflict dependency is specified using 3 parameters

  • uid
  • version-lower
  • version-upper

Component N matches the requirement if

  • its uid equals to the dependency`s uid
  • its version is within the limits from version-lower to version-upper.

Having this type of dependency guarante that:

  • if current component is set to be installed then no other component matching the requirement would be set for installation
  • if current component is set to be installed then all other components matching the requirement would be set for uninstallation

install-after

Install-after dependency is specified using 1 parameter:

  • uid

Component N matches the requirement if its uid equals to the dependency`s uid

Having this type of dependency guarante that:

  • if current component is set to installation and if there are another components that are set to be installed and have dependency uid, then those components would be installed before the current component


Checking dependencies

During registry initialization all requirements are checked. This check guarante that:

  • if component A has a requirement dependency on component B with from version X to version Y, then there is at least one component in the registry matching the requirement
  • if component A has a requirement dependency on component B with from version X to version Y, then no component matches this requirement can have requirement, conflict, or install-after dependency so that A requires it
  • if component A has a requirement dependency on component B with from version X to version Y, then A cannot have conflict dependency that any component matching the requirement would match
  • if component A has a install-after dependency on component B then B cann`t have any requirement or install-after dependency so that A matches it
  • if component A has a requirement dependency on component B with from version X to version Y, then no component matching this requirement can have requirement dependency on the component that have requirement, conflict, or install-after dependency that A matches.
  • previous limitation with variable length of components
  • if component A has a install-after dependency on component B, then no component matching this requirement can have requirement dependency on the component that have requirement or install-after dependency that A matches.
  • previous limitation with variable length of components
Not logged in. Log in, Register

By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2012, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo