use of org.apache.ode.bpel.iapi.ProcessStoreEvent in project carbon-business-process by wso2.
the class ProcessStoreImpl method setProperty.
public void setProperty(final QName pid, final QName propName, final String value) {
if (log.isDebugEnabled()) {
log.debug("Setting property " + propName + " on process " + propName);
}
if (processes.indexOf(pid) == -1) {
String errMsg = "Process " + pid + " not found.";
log.error(errMsg);
throw new ContextException(errMsg);
}
final String duName = getDeploymentUnitForProcess(pid);
if (duName == null) {
// This cannot happen if every thing in process store is in sync
String errMsg = "Deployment unit for process " + pid + " not found.";
log.error(errMsg);
throw new ContextException(errMsg);
}
exec(new Callable<Object>() {
public Object call(ConfStoreConnection conn) {
DeploymentUnitDAO duDao = conn.getDeploymentUnit(duName);
if (duDao == null) {
return null;
}
ProcessConfDAO pConfDao = duDao.getProcess(pid);
if (pConfDao == null) {
return null;
}
pConfDao.setProperty(propName, value);
return null;
}
});
fireEvent(new ProcessStoreEvent(ProcessStoreEvent.Type.PROPERTY_CHANGED, pid, duName));
}
use of org.apache.ode.bpel.iapi.ProcessStoreEvent in project carbon-business-process by wso2.
the class ProcessStoreImpl method updateMapsAndFireStateChangeEventsForUndeployedProcesses.
public void updateMapsAndFireStateChangeEventsForUndeployedProcesses(Integer tenantId, String duName, Collection<QName> pids) {
for (QName pid : pids) {
fireEvent(new ProcessStoreEvent(ProcessStoreEvent.Type.UNDEPLOYED, pid, duName));
log.info("Process " + pid + " undeployed.");
}
updateProcessAndDUMaps(tenantId, duName, pids, false);
}
use of org.apache.ode.bpel.iapi.ProcessStoreEvent in project carbon-business-process by wso2.
the class ProcessStoreImpl method onBPELPackageDeployment.
public void onBPELPackageDeployment(Integer tenantId, final String duName, final String duLocation, final List<ProcessConfigurationImpl> processConfs) {
boolean status = exec(new Callable<Boolean>() {
@Override
public Boolean call(ConfStoreConnection conn) {
DeploymentUnitDAO duDao = conn.getDeploymentUnit(duName);
if (duDao != null) {
/*
This is for clustering scenario. update/deployment
*/
return true;
}
duDao = conn.createDeploymentUnit(duName);
duDao.setDeploymentUnitDir(duLocation);
for (ProcessConf pConf : processConfs) {
try {
ProcessConfDAO processConfDao = duDao.createProcess(pConf.getProcessId(), pConf.getType(), pConf.getVersion());
processConfDao.setState(pConf.getState());
for (Map.Entry<QName, Node> prop : pConf.getProcessProperties().entrySet()) {
processConfDao.setProperty(prop.getKey(), DOMUtils.domToString(prop.getValue()));
}
conn.setVersion(pConf.getVersion());
} catch (Exception e) {
String errmsg = "Error persisting deployment record for " + pConf.getProcessId() + "; process will not be available after restart!";
log.error(errmsg, e);
return false;
}
}
return true;
}
});
if (status) {
CopyOnWriteArrayList<QName> pids = new CopyOnWriteArrayList<QName>();
for (ProcessConf pConf : processConfs) {
pids.add(pConf.getProcessId());
}
updateProcessAndDUMaps(tenantId, duName, pids, true);
for (ProcessConfigurationImpl processConf : processConfs) {
fireEvent(new ProcessStoreEvent(ProcessStoreEvent.Type.DEPLOYED, processConf.getProcessId(), duName));
fireStateChange(processConf.getProcessId(), processConf.getState(), duName);
}
}
}
Aggregations