50 likes | 185 Vues
This proposal seeks to address the limitations of the current Software Delivery Descriptor (SDD) framework concerning monolithic installations. Existing SDD artifacts are atomic and lack support for selectable content, hindering flexibility in deployment. The proposal introduces a "shared" boolean attribute to allow multiple Installation Units (IUs) to share the same artifact file, reducing redundancy. Additionally, it suggests an "append" feature for argument values, enabling enhanced configuration options. Open questions regarding shared artifacts and their management will also be discussed.
E N D
Proposal to support Monoliths Rich Aquino Macrovision June 7, 2007
Problem Statement • There are existing installations that use a single installer binary that contains selectable content, i.e., a “monolithic” artifact. • The current SDD concept of artifacts is that they are atomic and do not contain selectable content, i.e., there is support only for “atomic” artifacts. Selection is always done by selecting whole artifacts, never portions of artifacts. • These monolithic artifacts often expect input arguments that have a list of values, e.g., a list of selected features. • The current SDD definition of arguments does not support values that consist of a list of values.
Proposal Add a “shared” boolean attribute (defaults to false) to ArtifactType. • This will enable multiple Artifact elements in multiple IUs to share the same artifact file (or resourceRef), and will tell the runtime to process the artifact file only a single time no matter how many IUs share it. Enable NameAndOptionalValuePairType to specify that the value will be appended to a parameter of the same name. • New boolean attribute called append: optional, false • New string attribute called delimiter: optional
Examples • Shared • <sdd-dd:InstallArtifact type="executable" fileRef="win_bundle" shared="true"> • Append • <sdd-dd:Argument name="FEATURE_LIST" value="THIS_IU_FEATURE" append="true" delimiter=";" />
Open Questions • Can additional files differ in shared artifacts? What if both include substitution instructions? • When appending argument values, how to handle identical values? • What if artifact is shared but no other artifact with same fileRef/resourceRef exists? Error or ignore? • If a shared artifact is selected for a particular deployment but no other artifact with same file/resourceRef, error or ignore? • How to share output values?