The Decision Center Business console can be customized with your own session controller,
dynamic domain providers, value editors, and ruleset extractors.
Before you begin
To add your customizations to the Decision Center Business console, you must create a persistent
volume claim (PVC) dedicated to the storage of the custom libraries. You must also set the parameter
decisionCenter.customlibPvc to point to your PVC. For more information, see
Configuring the Decision Center Business console
About this task
To complete the customization of Decision Center after you installed a Helm release, you copy the
custom libraries to the Decision Center container. Then, restart the Decision Center pod to pick up
the custom libraries.
Procedure
-
Go to the pod that is running Decision Center and copy your custom JAR library to the
customlib
folder inside the pod.
- List the names of the running pods.
- Add the Decision Center custom library to the Decision Center pod with the following
command.
$ kubectl cp mycustomdclib.jar namespace/my-odm-prod-release-odm-decisioncenter-XXXXXX:/config/customlib
Where the mycustomdclib.jar
is the name of the file that contains the custom
classes, and namespace
is the namespace value that is specified during the
installation of the release.
Important: Do not change the /config/customlib
path as it is a
mandatory path inside the Decision Center container.
-
Make sure that the JAR files are in the running pod.
$ kubectl exec my-odm-prod-release-odm-decisioncenter-XXXXXX -- ls -l /config/customlib
- Optional:
If your customization includes a custom value editor, you must register the associated servlet.
For a sample of a customized value editor, see the IBM Docs. For the Custom Value Editor sample, the following steps must be taken
to add the customization to Decision Center.
- The web.xml file describes the custom servlet with the name
SampleValueEditorServletName
.
<servlet>
<servlet-name>SampleValueEditorServletName</servlet-name>
<servlet-class>businessvalueeditor.SampleValueEditorServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SampleValueEditorServletName</servlet-name>
<url-pattern>/servlet/SampleValueEditorServletName</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>Entry points</web-resource-name>
<url-pattern>/servlet/SampleValueEditorServletName</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>rtsAdministrator</role-name>
<role-name>rtsConfigManager</role-name>
<role-name>rtsUser</role-name>
</auth-constraint>
</security-constraint>
- Add the web.xml file to the Decision Center pod with the
following command.
$ kubectl cp web.xml namespace/my-odm-prod-release-odm-decisioncenter-XXXXXX:/config/customlib
Important: Do not change the web.xml file name as it is a mandatory
name inside the Decision Center container.
- Create a js folder and add the JavaScript files that call the servlet to the folder.
- Add the js folder to the Decision Center pod with the following
command.
$ kubectl cp js namespace/my-odm-prod-release-odm-decisioncenter-XXXXXX:/config/customlib
Important: Do not change the js folder name as it is a mandatory
name inside the Decision Center container.
- Optional: If you want to change the access mode from
ReadWriteOnce
to ReadOnlyMany
, you need to edit the
PersistenceVolume that is associated with the PersistenceVolumeClaim.
In ReadWriteOnce
mode, the persistence volume is mounted as read-write. All the
pods attached to this persistence volume will be instantiated on the same node.
In ReadOnlyMany
mode, all the pods attached to the persistence volume will be
instantiated as read-only on multiple nodes.
To change the access mode to ReadOnlyMany
, follow these steps:
- Display the associated PersistenceVolume.
kubectl get pvc custom-dc-libs-pvc
- Run the following command to change the access mode of the persistence volume to
ReadOnlyMany
.
kubectl patch pv <PV-NAME> -p '{"spec":{"accessModes":["ReadOnlyMany"]}}'
-
Restart the Decision Center pod by using the
kubectl delete pod
command to
pick up the changes.
$ kubectl delete pod my-odm-prod-release-odm-decisioncenter-XXXXXX
-
Almost every customization of Decision Center needs you to declare a key registration in the
Business console by using the tab. Each customization provides a specific key.
For more information about the supported customizations, see: