use of org.wso2.carbon.apimgt.core.workflow.GeneralWorkflowResponse in project carbon-apimgt by wso2.
the class ApplicationCreationWSWorkflowExecutor method execute.
@Override
public WorkflowResponse execute(WorkflowDTO workflowDTO) throws WorkflowException {
if (log.isDebugEnabled()) {
log.debug("Executing Application creation Workflow.");
}
super.execute(workflowDTO);
try {
String action = WorkflowConstants.CREATE_APPLICATION_WS_ACTION;
ServiceClient client = getClient(action);
String payload = "<wor:ApplicationApprovalWorkFlowProcessRequest xmlns:wor=\"http://workflow.application.apimgt" + ".carbon.wso2.org\">\n" + " <wor:applicationName>$1</wor:applicationName>\n" + " <wor:applicationTier>$2</wor:applicationTier>\n" + " <wor:applicationCallbackUrl>$3</wor:applicationCallbackUrl>\n" + " <wor:applicationDescription>$4</wor:applicationDescription>\n" + " <wor:tenantDomain>$5</wor:tenantDomain>\n" + " <wor:userName>$6</wor:userName>\n" + " <wor:workflowExternalRef>$7</wor:workflowExternalRef>\n" + " <wor:callBackURL>$8</wor:callBackURL>\n" + " </wor:ApplicationApprovalWorkFlowProcessRequest>";
ApplicationWorkflowDTO appWorkFlowDTO = (ApplicationWorkflowDTO) workflowDTO;
Application application = appWorkFlowDTO.getApplication();
String callBackURL = appWorkFlowDTO.getCallbackUrl();
payload = payload.replace("$1", application.getName());
payload = payload.replace("$2", application.getTier());
payload = payload.replace("$3", application.getCallbackUrl() == null ? "" : application.getCallbackUrl());
payload = payload.replace("$4", application.getDescription() == null ? "" : application.getDescription());
payload = payload.replace("$5", appWorkFlowDTO.getTenantDomain());
payload = payload.replace("$6", appWorkFlowDTO.getUserName());
payload = payload.replace("$7", appWorkFlowDTO.getExternalWorkflowReference());
payload = payload.replace("$8", callBackURL != null ? callBackURL : "?");
client.fireAndForget(AXIOMUtil.stringToOM(payload));
} catch (AxisFault axisFault) {
log.error("Error sending out message", axisFault);
throw new WorkflowException("Error sending out message", axisFault);
} catch (XMLStreamException e) {
log.error("Error converting String to OMElement", e);
throw new WorkflowException("Error converting String to OMElement", e);
}
return new GeneralWorkflowResponse();
}
use of org.wso2.carbon.apimgt.core.workflow.GeneralWorkflowResponse in project carbon-apimgt by wso2.
the class ApplicationCreationWSWorkflowExecutor method complete.
/**
* Complete the external process status.
* Based on the workflow , we will update the status column of the
* Application table
*
* @param workFlowDTO object
*/
@Override
public WorkflowResponse complete(WorkflowDTO workFlowDTO) throws WorkflowException {
workFlowDTO.setUpdatedTime(System.currentTimeMillis());
ApiMgtDAO dao = ApiMgtDAO.getInstance();
try {
if (dao.getApplicationById(Integer.parseInt(workFlowDTO.getWorkflowReference())) != null) {
super.complete(workFlowDTO);
log.info("Application Creation [Complete] Workflow Invoked. Workflow ID : " + workFlowDTO.getExternalWorkflowReference() + "Workflow State : " + workFlowDTO.getStatus());
String status = null;
if (WorkflowStatus.CREATED.equals(workFlowDTO.getStatus())) {
status = APIConstants.ApplicationStatus.APPLICATION_CREATED;
} else if (WorkflowStatus.REJECTED.equals(workFlowDTO.getStatus())) {
status = APIConstants.ApplicationStatus.APPLICATION_REJECTED;
} else if (WorkflowStatus.APPROVED.equals(workFlowDTO.getStatus())) {
status = APIConstants.ApplicationStatus.APPLICATION_APPROVED;
}
try {
dao.updateApplicationStatus(Integer.parseInt(workFlowDTO.getWorkflowReference()), status);
} catch (APIManagementException e) {
String msg = "Error occurred when updating the status of the Application creation " + "process";
log.error(msg, e);
throw new WorkflowException(msg, e);
}
} else {
String msg = "Application does not exist";
throw new WorkflowException(msg);
}
} catch (APIManagementException e) {
String msg = "Error occurred when retrieving the Application creation with workflow ID :" + workFlowDTO.getWorkflowReference();
log.error(msg, e);
throw new WorkflowException(msg, e);
}
return new GeneralWorkflowResponse();
}
Aggregations