package org.jboss.narayana.blacktie.jatmibroker.xatmi.services;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.jboss.narayana.blacktie.jatmibroker.xatmi.Connection;
import org.jboss.narayana.blacktie.jatmibroker.xatmi.ConnectionException;
import org.jboss.narayana.blacktie.jatmibroker.xatmi.Response;
import org.jboss.narayana.blacktie.jatmibroker.xatmi.Service;
import org.jboss.narayana.blacktie.jatmibroker.xatmi.TPSVCINFO;
import org.jboss.narayana.blacktie.jatmibroker.xatmi.TestSpecQuickstartOne;
import org.jboss.narayana.blacktie.jatmibroker.xatmi.X_C_TYPE;
public class SpecQuickstartOneService implements Service {
private static final Logger log = LogManager.getLogger(SpecQuickstartOneService.class);
public Response tpservice(TPSVCINFO svcinfo) throws ConnectionException {
log.info("debit_credit_svc");
short rval;
/* extract request typed buffer */
X_C_TYPE dc_ptr = (X_C_TYPE) svcinfo.getBuffer();
/*
* Depending on service name used to invoke this routine, perform either debit or credit work.
*/
if (!svcinfo.getName().equals("DEBIT")) {
/*
* Parse input data and perform debit as part of global transaction.
*/
} else {
/*
* Parse input data and perform credit as part of global transaction.
*/
}
// TODO MAKE TWO TESTS
if (dc_ptr.getInt("failTest") == 0) {
rval = Connection.TPSUCCESS;
dc_ptr.setInt("output", TestSpecQuickstartOne.OK);
} else {
rval = Connection.TPFAIL; /* global transaction will not commit */
dc_ptr.setInt("output", TestSpecQuickstartOne.NOT_OK);
}
/* send reply and return from service routine */
return new Response(rval, 0, dc_ptr, 0);
}
}