This document details different cases on deploying custom code. Identity Manager’s custom code is mainly written in Java. Java allows different packaging and deployments, however, not all will work with Identity Manager. This document will explain how to deploy such custom code into Identity Manager.
Identity Manager 14.X
Identity Suite 14.X
Java itself allows two main ways to deploy its class files:
Identity Manager runs in the context of its application server. Identity Manager is actually running under the IAM Framework that links with the application server and uses its services.
The IAM Framework is not a standard deployer of the application servers. The IAM Framework was not written to J2EE standards for extension usage.
There are mainly two types of custom code for Identity Manager:
The first type of classes (BLTH, LAH, Event Listener) run inside a calling thread of the application. Considering that IAM Framework is not a standard deployer, they can only be deployed in the way allowed by the Framework. This , as documented, is to place them in /iam_im.ear/custom folder. In that folder they can not be packaged as a jar file, but must be placed in an exploded class folder structure. These classes can not be placed in another location under the application server since IAM Framework specifically looks to find them under /custom.
The second type of classes are part of the user interface. The user interface runs under /iam_im.ear/user_console.war. If you write your own JSP pages, then the supporting java classes need to be placed under /iam_im.ear/user_console.war/web-inf/lib. These classes must be packaged in a jar file rather than deployed in an exploded way.
To emphasize, since IAM Framework is not a Standard Deployer, then it explicitly looks up classes and does not use the application server to look them up. Therefore it will only find them where it specifically looks for them.
- To deploy a BLTH, LAH, Event Listener:
o Place your exploded class folder structure under /iam_im.ear/custom. Make sure your folder names use the same case as your java code since the Java class loader is case-sensitive.
o Make sure you do that on each application server cluster node.
- To deploy new or additional web pages:
o Place your supporting java classes for your own JSP pages that were packaged in a jar file under /iam_im.ear/user_console.war/web-inf/lib.
For vApp deployments:
Look at the document below, the section "Deploy Identity Manager Custom Classes"
And you will need a patch to accomplish this, see the IM documentation here:
Deploy Custom Code