Java class implementation
Integration modules can be implemented to use Java™ class files. Using a Java class file eliminates the need for integration component registration and configuration. Additionally, all the underlying integration module implementations are transparent to the process management product.
Java class integration modules must implement the psdi.iface.mic.ServiceInvoker
Java interface. The service invoker Java interface is included in the businessobjects.jar file. Include the integration module Java class in the system class path at run time.
The service invoker Java interface has variations of the following method signature:
public byte[] invoke(Map String,Object metaData,
MboRemote sourceMbo, MboRemote targetMbo, String endPointName)
throws MXException, RemoteException;
metaData
is a map of the name and value properties that includes:- The integration module name and version.
- The logical management operation name and name space.
- The operational management product globally unique identifier.
- The endpoint name and any endpoint properties that are being overwritten.
sourceMbo
is the source object that you defined on the logical management operation.targetMbo
is the response object that you defined on the logical management operationendPointName
is the name of the endpoint that you use for communication with the operational management product.
If you configure the integration module to implement multiple logical
management operations, the integration module must determine which
logical management operation is being called. At run time, the integration
module retrieves the LMONAME and LMONAMESPACE properties from the metaData
input
map:
import psdi.iface.omp.IMConstants;
.
.
.
String lmoName = metaData.get(IMConstants.LMONAME);
String lmoNamespace = metaData.get(IMConstants.LMONAMESPACE);
The integration module can retrieve logical management operation data from the source object. The following example code retrieves logical management operation values from the source object:
String guid = sourceMbo.getString("GUID");
int packID = sourceMbo.getInt("PACKID");
boolean hasSubs = sourceMbo.getBoolean("HASSUBS");
In the example, the logical management operation has an alphanumeric input attribute called globally unique identifier, an integer attribute called PACKID, and a Boolean attribute called HASSUBS.
Service invoker methods can take a MboSetRemote
set
of values as a source input, instead of a single MboRemote
value.
In some cases, the integration module passes all of the objects in
the object set to the operational management product. In other cases,
the integration module passes only the first object in the set. There
are no set rules that apply to the integration module behavior, but
you must clearly define the expected behavior in the logical management
operation description.