KB Article #73453

JMC Query: Can Java Universal Agent Code be invoked from within a JMC?

Problem

-- Can Java Universal Agent Code in Sentinel be invoked from within a JMC to send events to sentinel via Integrator?


Resolution

* Yes, its is possible to integrate Java Universal Agent into a JMC. Please refer to below sample code:



import com.axway.xib.MessageScope;



import java.io.IOException;
import java.io.OutputStreamWriter;
import com.axway.xib.Activity;
import com.axway.xib.Component;
import com.axway.xib.Context;
import com.axway.xib.Creator;
import com.axway.xib.ProcessingMessage;
import com.axway.xib.MessageScope;
import com.axway.trkapiua.TrkApiUA;
import com.axway.trkapiua.TrkMessageUAEvent;



public class JUA_test extends Component implements Creator {

public void process(Context context, final ProcessingMessage message, final Activity[] nextActivities) {

// This is the JMC part, where I just write a random string to the output message
// You can add other processing if you desire

ProcessingMessage result = message.createMessage(MessageScope.CONTAINER);
OutputStreamWriter writer = new OutputStreamWriter(result.getOutput());
try {
writer.write("Random string written from JMC.");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
result.setActivity(nextActivities[0]);

// This is the part where we connect to Sentinel and send a Tracked Object
// I'm setting the attribute gigi with the value "?????????????????????" (which is thai)

TrkApiUA trkapiua = new TrkApiUA("10.133.13.125", "1305", "UTF-8");
trkapiua.setUATrace(4, "C:\\Axway\\miz\\uatrace.txt");
trkapiua.setOverflowFile("C:\\Axway\\miz\\tampon.dat",1);
trkapiua.sendOverflowFile("C:\\Axway\\miz\\tampon.dat");
trkapiua.setLocalAddr("10.133.56.18");
trkapiua.setProductName("TRKAPI_JAVA");
TrkMessageUAEvent trkmsgevent = new TrkMessageUAEvent(trkapiua, "BOGDAN", "1.0");
trkmsgevent.setAttribute("gigi", "?????????????????????");



trkapiua.sendMessage(trkmsgevent);
trkapiua.stopUA();

try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}



}