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 operation
  • endPointName 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.