use of org.wso2.carbon.apimgt.api.model.Workflow in project carbon-apimgt by wso2.
the class WorkflowExecutorFactory method getWorkflowConfigurations.
public TenantWorkflowConfigHolder getWorkflowConfigurations() throws WorkflowException {
String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain();
String cacheName = tenantDomain + "_" + APIConstants.WORKFLOW_CACHE_NAME;
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
// synchronized (cacheName.intern()){
Cache workflowCache = Caching.getCacheManager(APIConstants.API_MANAGER_CACHE_MANAGER).getCache(APIConstants.WORKFLOW_CACHE_NAME);
TenantWorkflowConfigHolder workflowConfig = (TenantWorkflowConfigHolder) workflowCache.get(cacheName);
if (workflowConfig != null) {
return workflowConfig;
} else {
TenantWorkflowConfigHolder configHolder = new TenantWorkflowConfigHolder(tenantDomain, tenantId);
try {
configHolder.load();
workflowCache.put(cacheName, configHolder);
return configHolder;
} catch (WorkflowException e) {
handleException("Error occurred while creating workflow configurations for tenant " + tenantDomain, e);
} catch (RegistryException e) {
handleException("Error occurred while creating workflow configurations for tenant " + tenantDomain, e);
}
}
return null;
}
use of org.wso2.carbon.apimgt.api.model.Workflow in project carbon-apimgt by wso2.
the class WorkflowExecutorFactory method createWorkflowDTO.
/**
* Create a DTO object related to a given workflow type.
* @param wfType Type of the workflow.
*/
public WorkflowDTO createWorkflowDTO(String wfType) {
WorkflowDTO workflowDTO = null;
if (WorkflowConstants.WF_TYPE_AM_APPLICATION_CREATION.equals(wfType)) {
workflowDTO = new ApplicationWorkflowDTO();
workflowDTO.setWorkflowType(wfType);
} else if (WorkflowConstants.WF_TYPE_AM_APPLICATION_REGISTRATION_PRODUCTION.equals(wfType)) {
workflowDTO = new ApplicationRegistrationWorkflowDTO();
((ApplicationRegistrationWorkflowDTO) workflowDTO).setKeyType(APIConstants.API_KEY_TYPE_PRODUCTION);
workflowDTO.setWorkflowType(wfType);
} else if (WorkflowConstants.WF_TYPE_AM_APPLICATION_REGISTRATION_SANDBOX.equals(wfType)) {
workflowDTO = new ApplicationRegistrationWorkflowDTO();
((ApplicationRegistrationWorkflowDTO) workflowDTO).setKeyType(APIConstants.API_KEY_TYPE_SANDBOX);
workflowDTO.setWorkflowType(wfType);
} else if (WorkflowConstants.WF_TYPE_AM_SUBSCRIPTION_CREATION.equals(wfType)) {
workflowDTO = new SubscriptionWorkflowDTO();
workflowDTO.setWorkflowType(wfType);
} else if (WorkflowConstants.WF_TYPE_AM_SUBSCRIPTION_UPDATE.equals(wfType)) {
workflowDTO = new SubscriptionWorkflowDTO();
workflowDTO.setWorkflowType(wfType);
} else if (WorkflowConstants.WF_TYPE_AM_USER_SIGNUP.equals(wfType)) {
workflowDTO = new WorkflowDTO();
workflowDTO.setWorkflowType(wfType);
} else if (WorkflowConstants.WF_TYPE_AM_API_STATE.equals(wfType) || WorkflowConstants.WF_TYPE_AM_API_PRODUCT_STATE.equals(wfType)) {
workflowDTO = new APIStateWorkflowDTO();
workflowDTO.setWorkflowType(wfType);
}
return workflowDTO;
}
use of org.wso2.carbon.apimgt.api.model.Workflow in project carbon-apimgt by wso2.
the class ApplicationCreationApprovalWorkflowExecutor method complete.
/**
* Complete the Application creation approval workflow peocess.
*
* @param workFlowDTO
*/
@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);
if (log.isDebugEnabled()) {
String logMessage = "Application Creation [Complete] Workflow Invoked. Workflow ID : " + workFlowDTO.getExternalWorkflowReference() + " Workflow State : " + workFlowDTO.getStatus();
log.debug(logMessage);
}
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();
}
use of org.wso2.carbon.apimgt.api.model.Workflow in project carbon-apimgt by wso2.
the class ApplicationRegistrationApprovalWorkflowExecutor method execute.
/**
* Execute the Application Creation workflow approval process.
*
* @param workflowDTO
*/
@Override
public WorkflowResponse execute(WorkflowDTO workflowDTO) throws WorkflowException {
if (log.isDebugEnabled()) {
log.debug("Executing Application registration Workflow..");
}
ApplicationRegistrationWorkflowDTO appRegDTO = (ApplicationRegistrationWorkflowDTO) workflowDTO;
Application application = appRegDTO.getApplication();
String message = "Approve request to create " + appRegDTO.getKeyType() + " keys for " + application.getName() + " from application creator - " + appRegDTO.getUserName() + " with throttling tier - " + application.getTier();
workflowDTO.setWorkflowDescription(message);
workflowDTO.setProperties("keyType", appRegDTO.getKeyType());
workflowDTO.setProperties("applicationName", application.getName());
workflowDTO.setProperties("userName", appRegDTO.getUserName());
workflowDTO.setProperties("applicationTier", application.getTier());
super.execute(workflowDTO);
return new GeneralWorkflowResponse();
}
use of org.wso2.carbon.apimgt.api.model.Workflow in project carbon-apimgt by wso2.
the class ApplicationRegistrationWSWorkflowExecutor method execute.
@Override
public WorkflowResponse execute(WorkflowDTO workflowDTO) throws WorkflowException {
if (log.isDebugEnabled()) {
log.debug("Executing Application registration Workflow..");
}
try {
String action = WorkflowConstants.CREATE_REGISTRATION_WS_ACTION;
ServiceClient client = getClient(action);
String payload = "<wor:ApplicationRegistrationWorkFlowProcessRequest 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:keyType>$9</wor:keyType>\n" + " </wor:ApplicationRegistrationWorkFlowProcessRequest>";
ApplicationRegistrationWorkflowDTO appRegDTO = (ApplicationRegistrationWorkflowDTO) workflowDTO;
Application application = appRegDTO.getApplication();
String callBackURL = appRegDTO.getCallbackUrl();
String applicationCallbackUrl = application.getCallbackUrl();
String applicationDescription = application.getDescription();
payload = payload.replace("$1", application.getName());
payload = payload.replace("$2", application.getTier());
payload = payload.replace("$3", applicationCallbackUrl != null ? applicationCallbackUrl : "?");
payload = payload.replace("$4", applicationDescription != null ? applicationDescription : "?");
payload = payload.replace("$5", appRegDTO.getTenantDomain());
payload = payload.replace("$6", appRegDTO.getUserName());
payload = payload.replace("$7", appRegDTO.getExternalWorkflowReference());
payload = payload.replace("$8", callBackURL != null ? callBackURL : "?");
payload = payload.replace("$9", appRegDTO.getKeyType());
client.fireAndForget(AXIOMUtil.stringToOM(payload));
super.execute(workflowDTO);
} 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();
}
Aggregations