Customization archive guidelines

The customization archive is a set of files that contain changes and customizations that you make to the application. Customizations can include changes such as Java™ classes, XML, database scripts, or additional application server files that you created in a development environment.

Some customizations might apply only to specific deployments. For example, ejb-jar.xml can be applied to a Maximo® integration framework cluster but not to others.

Use the following guidelines to create a customization archive:
Class files, such as Java customizations
Class files must be added to the appropriate directory in the customization archive so that they can be extracted to the existing code in the appropriate hierarchy. Class files can include the following types of customizations:
  • MBO customizations
  • Field validations
  • Maximo integration framework customizations
  • Other customer-specific code
Deployment descriptors
You can add deployment descriptors, such as web.xml, ejb-jar.xml, and webservices.xml files, that you changed to the customization archive. When the application is redeployed, the customized files override the files that are provided for the deployment.
Use the following guidelines to create the structure of your customization archive.
  • For server bundles with a bundle type of all, you can use the following directory structure:
    deployment\was-liberty-default\config-deployment-descriptors\maximo-all\maximouiweb\webmodule\WEB-INF\web.xml
    deployment\was-liberty-default\config-deployment-descriptors\maximo-all\maximo-x\webmodule\WEB-INF\web.xml
    deployment\was-liberty-default\config-deployment-descriptors\maximo-all\maximo-x\webmodule\WEB-INF\web-guest.xml
    deployment\was-liberty-default\config-deployment-descriptors\maximo-all\maximo-x\webmodule\WEB-INF\web.xml
    deployment\was-liberty-default\config-deployment-descriptors\maximo-all\maxrestweb\webmodule\WEB-INF\web.xml
    deployment\was-liberty-default\config-deployment-descriptors\maximo-all\maximo-x\webmodule\WEB-INF\web.xml
    deployment\was-liberty-default\config-deployment-descriptors\maximo-all\mboweb\webmodule\WEB-INF\web.xml
    deployment\was-liberty-default\config-deployment-descriptors\maximo-all\meaweb\webmodule\WEB-INF\web.xml
    deployment\was-liberty-default\config-deployment-descriptors\maximo-all\mboejb\ejbmodule\META-INF\ejb-jar.xml
  • For server bundles with a bundle type of ui, you can use the following directory structure:
    deployment\was-liberty-default\config-deployment-descriptors\maximo-ui\webmodule\WEB-INF\web.xml 
  • For server bundles with a bundle type of mea, you can use the following directory structure:
    deployment\was-liberty-default\config-deployment-descriptors\maximo-mea\meaweb\webmodule\WEB-INF\web.xml
    deployment\was-liberty-default\config-deployment-descriptors\maximo-mea\mboejb\ejbmodule\META-INF\ejb-jar.xml
  • For server bundles with a bundle type of cron, you can use the following directory structure:
    deployment\was-liberty-default\config-deployment-descriptors\maximo-cron\webmodule\WEB-INF\web.xml
  • For server bundles with a bundle type of report, you can use the following directory structure:
    deployment\was-liberty-default\config-deployment-descriptors\maximo-report\webmodule\WEB-INF\web.xml
XSL customizations
If you have XSL customizations that were part of the Maximo EAR or WAR files in previous releases, you can include them in the customization archive. They are copied to the appropriate locations when the application is redeployed. For information about XSL customization, see the documentation for rule-based customization.
Database scripts
To add database scripts to the customization archive, you can create a a_customer.xml file. The a_customer.xml file incorporates system classes that have been customized. All modified class files and scripts must be referenced in the format shown in the following example.
In this example, the update utility runs the scripts representing each successive update version up to and including the referenced V600_01 script. The altered <mboset objectname> and <mbo object> entries indicate that the purchase order classes have been extended.
<?xml version="1.0" encoding="UTF-8"?>
<product>
	<name>Customer Product</name>
	<version>
		<major>6</major>
		<minor>0</minor>
		<patch>0</patch>
		<build>999</build>
	</version>
	<dbmaxvarname>DBCUST</dbmaxvarname>
	<dbscripts>cus</dbscripts>
	<dbversion>V600-01</dbversion>
	<lastdbversion>V520-20</lastdbversion>
	<extensions>
		<mboset objectname='PO'>psdi.app.cust.POSet</mboset>
		<mbo objectname='PO'> psdi.app.cust.PO</mbo>
	</extensions>
</product>
You can add the a_customer.xml file to the customization archive. After deployment, the database update utility runs and applies your custom scripts.
Additional files for IBM® WebSphere® Application Server Liberty

You can customize WebSphere Application Server Liberty for a server bundle by adding directories and files to the customization archive for the bundle. To add files to WebSphere Application Server Liberty, create an additional-server-files directory in the root directory of your customization archive and add the files to that directory. If necessary, you can also create subdirectories in the additional-server-files directory for your files.

When you configure the server bundles for Maximo Manage for deployment, provide the URL and credentials for the customization archive. When the application is deployed, the files and directories that you added are extracted to the /managefiles/additional-server-files folder on the Liberty server.

For example, if you use an IBM MQ service for messaging, you can add a RAR file for your IBM MQ resource adapter to the additional-server-files directory. When Maximo Manage is deployed, the file is added to the Liberty server.

For tracking purposes, it is a good practice to apply versions your customization archives.

Sample customization archive files

The following sample illustrates the kinds of files that you might want to include in your archive:
classes

applications\maximo\businessobjects\classes\cust\app\asset\Asset.class
applications\maximo\businessobjects\classes\cust\app\asset\AssetSet.class
applications\maximo\businessobjects\classes\cust\app\asset\FldAssetNewField.class
product XML
applications\maximo\properties\product\a_customer.xml
script
tools\maximo\en\cust\V7612_01.dbc
servlets
applications\maximo\commonweb\classes\com\ibm\tivoli\maximo\oslc\provider\MyPingServlet.class
deployment descriptors (web.xml)

deployment\was-liberty-default\config-deployment-descriptors\maximo-mea\meaweb\webmodule\WEB-INF\web.xml
deployment\was-liberty-default\config-deployment-descriptors\maximo-ui\webmodule\WEB-INF\web.xml