Title: Arbitrary and Cascading Operations
1Arbitrary and Cascading Operations
2The Problem
- Performing an operation on the SDD as a whole
does not necessarily mean performing that same
operation on all content elements in scope. It
also doesnt necessarily mean performing just one
operation on all content elements in scope. - E.g. An install at the top level may map to
install operations on installable units and
configuration operations on configuration units. - E.g. An install at the top level may require an
update, undo or even uninstall of some of the
content. - E.g. An update at the top level may require an
install of some content. - E.g. An install at the top level may require both
an install and an uninstall of a tool used to
support the install. - There is no way to know how the top-level
operation is intended to map to operations on
content elements.
3The Solution
- Provide a way for the SDD author to state
explicitly how operations on individual content
elements map to a top level operation.
4Current semantics that may be affected
- Operations on requirements are used to associate
the requirement with a particular artifact. - Operations on requirements in a CompositeUnit or
CompositeInstallable associate the requirement
with artifacts of all the contained content
elements (or to top level operations in the case
of ContainedPackages). - Dependency elements allow expression of
dependencies on a particular operation applied to
a particular content element.
5Solution Implementation
- Let the CompositeInstallable state explicitly
which operations are valid for the SDD. - Let operations defined in the Composites map
directly to the valid SDD operations.
(Specification hit only.) - Let each content element that defines artifacts
provide a mapping between the SDD operations and
operations supported by the content elements
artifacts. - Let the default mapping be one-to-one so that a
mapping only need be defined when there are
differences. - Allow the mapping of multiple operations on
content to one operation at the top level. - Allow expression of dependencies by a one
operation in a content element on another
operation in the same content element. This
allows ordering of artifact processing when
multiple content element operations map to one
SDD operation. (Specification hit only.)
6 type"sdd-commonIdentityType" minOccurs"0"/
ype" minOccurs"0"/ name"Variables" type"sdd-ddVariablesType"
minOccurs"0"/ type"sdd-ddRequiredBaseType" minOccurs"0"/
mentsType" minOccurs"0"/ name"SupportedLanguages" type"sdd-ddSupportedLa
nguagesType" minOccurs"0"/ name"ResultingResource" type"sdd-ddResultingRes
ourceType" minOccurs"0" maxOccurs"unbounded"/
type"sdd-ddResultingChangeType" minOccurs"0"
maxOccurs"unbounded"/ name"BaseContent" type"sdd-ddBaseContentType"
minOccurs"0"/ nt" type"sdd-ddSelectableContentType"
minOccurs"0"/ tent" type"sdd-ddLocalizationContentType"
minOccurs"0"/ name"id" type"ID" use"required"/ name"operation" type"sdd-ddOperationApplicabili
tyType" use"required"/ namespace"other" processContents"lax"/ lexType
Add a list of operations to CompositeInstallable
as an attribute. These are the operations that
are valid for the SDD. The specification will
explain that the intent of the SDD is to support
those operations applied to the SDD as a whole.
It is not the intent that any operation can be
applied to any individual content element in
isolation. Make the operation attribute required
with no default to make sure the SDD author
thinks about and communicates the operations
supported by the SDD.
7Add an optional OperationMaps element to
InstallableUnits, ConfigurationUnits and
LocalizationUnits the content elements that
define artifacts.
type"sdd-ddOperationMapType" maxOccurs"unbounde
d" / name"OperationMapType" namesddOperation" type"sdd-ddOperationType"
use"required" / namecontentOperations" type"sdd-ddOperationApp
licabilityType" useoptional" /
processContents"lax"/
8Operation semantics
- The SDD operation is an input provided by the
deployer. It must be one of the operations in the
set of operations defined in the
CompositeInstallable. - For composites there is no mapping of operations.
The SDD operation is always the operation that
applies to the composite. - For content with artifacts InstallableUnit,
ConfigurationUnit and LocalizationUnit the SDD
operation can be mapped to one or more different
operations on the content element. - When a content element is in scope, this map is
used to determine which Requirements, Conditions,
and Completion actions apply and which
artifact(s) will be used. - When sddOperation is defined with no associated
contentOperation, then that sddOperation is a
no-op for the content element. - If no mapping is provided for a particular SDD
operation, the SDD operation is applied without
mapping. - Its OK to provide a mapping for none, or only a
subset, of the SDD operations. SDD operations
that do not have a mapping are applied without
change.
9Remaining operation issueHow does operation
interact with content selection?
- Note This issue is not created or solved by the
proposal presented in these slides. - Does the selection of content by feature apply
for all operations? - It is easy to understand how features select
content for an install. - But what about update?
- Selection of content for an update probably
should be based on what was previously installed,
not on selection of features in the update SDD.
How is this achieved? - Does the answer change if one package can handle
both install and update? - What about undo, uninstall, configure, verify and
verifyConfig?