blob: 0e048255692e779e58472d463671a2ad4a5748e5 [file] [log] [blame]
/**
* RegistrationServiceSkeleton.java
*
* This file was auto-generated from WSDL
* by the Apache Axis2 version: 1.1.1 Jan 09, 2007 (06:20:51 LKT)
*/
package org.apache.kandula.wscoor;
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ServiceContext;
import org.apache.axis2.databinding.types.URI.MalformedURIException;
import org.apache.kandula.Constants;
import org.apache.kandula.context.AbstractContext;
import org.apache.kandula.coordinator.Coordinator;
import org.apache.kandula.faults.AbstractKandulaException;
import org.apache.kandula.storage.StorageUtils;
import org.apache.kandula.utility.EndpointReferenceFactory;
import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterResponse;
import org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterResponseType;
/**
* RegistrationServiceSkeleton java skeleton for the axisService
*/
public class RegistrationServiceSkeleton {
public void init(ServiceContext serviceContext)
{
}
/**
* Auto generated method signature
* @param param0
* @throws AxisFault
*/
public org.oasis_open.docs.ws_tx.wscoor._2006._06.RegisterResponse RegisterOperation(
org.oasis_open.docs.ws_tx.wscoor._2006._06.Register param0) throws AxisFault
{
String protocolIdentifier;
EndpointReference participantEPR;
String activityId;
String participantId=null;
/*
* Extracting data from the received message
*/
protocolIdentifier = param0.getRegister().getProtocolIdentifier().toString();
// Extracting the participant EPR
participantEPR = EndpointReferenceFactory
.getEPR(param0.getRegister().getParticipantProtocolService());
OMElement header = MessageContext.getCurrentMessageContext()
.getEnvelope().getHeader();
activityId = header.getFirstChildWithName(
Constants.TRANSACTION_ID_PARAMETER).getText();
OMElement participantIDElement = header.getFirstChildWithName(
Constants.PARTICIPANT_ID_PARAMETER);
if (participantIDElement != null) {
participantId = participantIDElement.getText();
}
/*
* Registering the participant for the activity for the given protocol
*/
try {
Coordinator coordinator = new Coordinator();
AbstractContext context = (AbstractContext) StorageUtils
.getContext(activityId);
if (context == null) {
throw new IllegalStateException(
"No Activity Found for this Activity ID");
}
EndpointReference epr = coordinator.registerParticipant(context,
protocolIdentifier, participantEPR,participantId);
RegisterResponseType registerResponseType = new RegisterResponseType();
registerResponseType.setCoordinatorProtocolService(EndpointReferenceFactory.getEPRTypeFromEPR(epr));
RegisterResponse registerResponse = new RegisterResponse();
registerResponse.setRegisterResponse(registerResponseType);
return registerResponse;
} catch (AbstractKandulaException e) {
AxisFault fault = AxisFault.makeFault(e);
fault.setFaultCode(e.getFaultCode());
throw fault;
} catch (MalformedURIException e) {
AxisFault fault = AxisFault.makeFault(e);
throw fault;
}
}
}