The assembly level sdd.xml file
When you create a Portal Application Archive (PAA) file, it might be necessary to add an assembly level sdd.xml file. This file registers the PAA content with the ConfigEngine.
The information in the sdd.xml file informs the Solution Installer about the name and type of the application to install. It also includes information about the versions of HCL Digital Experience to which installation of the PAA content is compatible. In addition, the sdd.xml tells Solution Installer the names and locations of the components to be installed. The different elements of the assembly level sdd.xml file are described in terms of how they are required for the Solution Installer. You can edit a sample sdd.xml file with the required information to ensure that the sdd.xml file is complete and accurate.
Starting with Version 8.5, a basic version of the assembly level sdd.xml file can be automatically generated. Solution installer uses the name of the root directory in the PAA file as the assembly name and can add any components that are found in the /components/ directory. Each component is added based on the names of the sub-directories that are found in the /components directory. Each components/ sub-directory is recognized as a separate component. However, there might be cases where a developer does not want to have a component included in the assembly level sdd.xml file. For example, an extra component that contains files that should not be deployed is included. Then, the developer might need a mechanism to restrict the list of components. You can place a limitation on the components that you want to include. Create an order.properties file in the components directory. Populate it with a comma-separated list of the components in the order in which they should be installed. If there is a components/order.properties file, the Solution Installer restricts the list of components added to the sdd.xml file to only those components that are listed in the order.properties file. This order has other meanings for automatically creating dependencies between the components so it is important to ensure that the components can be successfully installed following this order. See the section 'Order of installation of scripts and artifacts' for more details on how the ordering of artifacts is handled. The mechanism in which the dependencies are created is described in The component level sdd.xml file section in the advanced development documentation.
Although the assembly level sdd.xml file can be auto-generated, there are
many circumstances where this option is not a viable solution. For example, there are
restrictions on server versions on which the PAA file can be installed. It is necessary to
include a <ServerVersionDependencies>
element to
illustrate the versions. This information is not handled automatically by the Solution
Installer so you must generate the file manually. If you added a
/components/order.properties file and do not want to limit the
list to only those components in the order.properties file, add the
additional <containedPackage>
elements for each
component to the file.
<?xml version="1.0" encoding="UTF-8"?>
h<iudd:iudd
xmlns:iudd="http://www.ibm.com/xmlns/prod/autonomic/solutioninstall/IUDD"
xmlns:iurtype="http://www.ibm.com/xmlns/prod/autonomic/resourcemodel/IU/resourcetypes"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:OSRT="http://www.ibm.com/xmlns/prod/autonomic/resourcemodel/OS/resourcetypes"
xsi:schemaLocation="http://www.ibm.com/xmlns/prod/autonomic/solutioninstall/IUDD ../iudd/iudd.xsd "
schemaVersion="2.0.0" buildID="MySoln-IUDD-1.0" buildDate="2006-01-19T12:00:00">
<packageIdentity contentType="Assembly">
<name>sample_paa</name>
<version>8.5.0.0</version>
<displayName key="d0001" default="sample_paa" />
<manufacturer>
<displayName key="DU_01" default="IBM" />
</manufacturer>
</packageIdentity>
<topology>
<resource type="OSRT:OperatingSystem" id="OS" />
</topology>
<content xsi:type="iudd:RootIUContent">
<rootIU id="sample_paa" targetRef="OS">
<identity>
<name>sample_paa</name>
</identity>
<containedPackage id="components/componentN" pathname="components/componentN/sdd.xml" />
<serverVersionDependency name="PortalServer" lowerVersion="6.0.0.0" higherVersion="8.5.0.0" versions="" />
</rootIU>
</content>
</iudd:iudd>
<iudd:iudd>
element, the following three
subelements are required for installation with the Solution Installer:- The
<packageIdentity>
element - The first element is the
<packageIdentity>
element; for example:<packageIdentity contentType="Assembly"> <name>sample_paa</name> <version>8.5.0.0</version> <displayName key="d0001" default="sample_paa" /> <manufacturer> <displayName key="DU_01" default="IBM" /> </manufacturer> </packageIdentity>
The
<packageIdentity>
element informs the Solution Installer and the ConfigEngine of the type of application to be installed. In this case, the contentType attribute equals Assembly. An assembly is a grouping of one or more components. The Solution Installer considers each PAA file as an assembly, even though it might contain only one component. Do not edit this attribute.The
<packageIdentity>
element contains a number of subelements that provide information about the content. The name and version elements need to be altered to suit the application you are installing. The<displayName>
element can also be edited to include the assembly name, but is not required.Important: The name element that is provided for an assembly must match the name of the PAA file root directory. For example, a name of sample_paa requires the root directory to also be called sample_paa. - The
<topology>
element - The next subelement is the
<topology>
element. This element does not require any alterations. For example:<topology> <resource type="OSRT:OperatingSystem" id="OS" /> </topology>
- The
<content>
element - The final element block is the
<content>
element. This element provides the Solution Installer and the ConfigEngine with the information about what to install and on which servers. The<rootIU>
element is where the actual information is included. Set the ID attribute of the<rootIU>
element to the name of the application as used in the<name>
element of the<packageIdentity>
element.<content xsi:type="iudd:RootIUContent"> <rootIU id="sample_paa" targetRef="OS"> <identity> <name>sample_paa</name> </identity> <containedPackage id="components/componentN" pathname="components/componentN/sdd.xml" /> <serverVersionDependency name="PortalServer" lowerVersion="6.0.0.0" higherVersion="8.5.0.0" versions="" /> </rootIU> </content>
The
<identity>
element contains the<name>
subelement. Set this element to the name of the assembly found in the<packageIdentity>
name element.
Although there is only one <containedPackage>
element in this
example, there can be a number of these elements. One for each component included in the
PAA file. This element allows for
ConfigEngine to register the components and informs it on where to find the component
level sdd.xml file. The Solution Installer can auto-generate the
component level sdd.xml file during the install-paa command. The developer does not need to add this file for a
basic PAA file. However, when the developer
needs to provide specific component dependencies outside of an
order.properties file, then the component level
sdd.xml file must be provided.
There are two attributes for the <containedPackage>
element.
The ID must equal the path of the component relative to the assembly level
sdd.xml file. For example, as the PAA file puts all components in the
components directory, a component name needs to also include
the components/. For example, a component that is called
component would have the id=components/component
.
The path name contains the path from the assembly sdd.xml file to
the component level sdd.xml file. Continuing with the previous
example, the pathname
element is pathname="components/componentN/sdd.xml"
.
The final element is the <serverVersionDependency>
element.
This element informs the Solution Installer of the HCL Portal versions on which the content can be
installed. Not all the attributes that are shown are required. Go to the Checking
server dependency section for more details.