20 likes | 227 Views
Monolithic Artifact Proposal. Current Selectivity, i.e. Features, assumes that a unique content unit(s) contains the support for each selection. Issue Some existing artifacts are monolithic. Selectivity needs to be declared Selectivity defines “switches” for deploying the monolithic artifact
E N D
Monolithic Artifact Proposal • Current • Selectivity, i.e. Features, assumes that a unique content unit(s) contains the support for each selection. • Issue • Some existing artifacts are monolithic. • Selectivity needs to be declared • Selectivity defines “switches” for deploying the monolithic artifact • Proposal • Provide the ability for the selection of a Feature to define, and set the value of, a variable, i.e. the selection of a feature sets a variable. • This variable can be used by the content unit that contains the monolithic artifact. <complexType name="FeatureType"> <sequence> <group ref="sdd-dd:DisplayElementGroup" minOccurs="0"/> <element name="Condition" type="sdd-dd:ConditionType" minOccurs="0"/> <element name="SupportedLanguages" type="sdd-dd:SupportedLanguagesType" minOccurs="0"/> <choice maxOccurs="unbounded"> <element name="Feature" type="sdd-dd:NestedFeatureType"/> <element name="ContentElement" type="sdd-dd:ContentElementReferenceType"/> <element name="RequiredFeature" type="sdd-dd:FeatureReferenceType"/> <element name=“Variable" type="DerivedVariableType"/> </choice> <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="id" type="ID" use="required"/> <anyAttribute namespace="##other" processContents="lax"/> </complexType>
Monolithic Artifact ProposalExample <?xml version="1.0" encoding="UTF-8"?> <sdd-dd:DeploymentDescriptor . . . <sdd-dd:InstallableUnit id="SimpleJ2eeAppUnit" targetResourceRef="J2eeAppServer"> <sdd-dd:Identity> <sdd-common:Name>Simple Application Business Logic</sdd-common:Name> <sdd-common:Version>1.0</sdd-common:Version> </sdd-dd:Identity> <sdd-dd:Variables> <sdd-dd:DerivedVariable id="Feature_List"> <sdd-dd:Expression>$(featureApp),$(featureHelp)</sdd-dd:Expression> </sdd-dd:DerivedVariable> </sdd-dd:Variables> <sdd-dd:Artifacts> <sdd-dd:InstallArtifact type="InstallAnywhere" fileRef="InstallArtifact"> <sdd-dd:Arguments> <sdd-dd:Argument name="$(InstallLocation)" /> <sdd-dd:Argument name="DFEATURE_LIST" value="$(Feature_List)" required="false" /> </sdd-dd:Arguments> <sdd-dd:AdditionalFile fileRef="SAC_JAR" /> </sdd-dd:InstallArtifact> </sdd-dd:Artifacts> </sdd-dd:InstallableUnit> . . . <sdd-dd:SelectableContent> <sdd-dd:Features> <sdd-dd:Feature id="Application"> <sdd-dd:DisplayName>Application Feature</sdd-dd:DisplayName> <sdd-dd:Variable id="featureApp" value=Application"> </sdd-dd:Feature> <sdd-dd:Feature id="Help"> <sdd-dd:DisplayName>Application Help Files</sdd-dd:DisplayName> <sdd-dd:Variable id="featurehelp" value="Help"> </sdd-dd:Feature> </sdd-dd:Features> </sdd-dd:SelectableContent> . . . </sdd-dd:DeploymentDescriptor>