Search in sources :

Example 1 with ProcessStoreEvent

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));
}
Also used : DeploymentUnitDAO(org.apache.ode.store.DeploymentUnitDAO) ConfStoreConnection(org.apache.ode.store.ConfStoreConnection) ProcessConfDAO(org.apache.ode.store.ProcessConfDAO) ProcessStoreEvent(org.apache.ode.bpel.iapi.ProcessStoreEvent) ContextException(org.apache.ode.bpel.iapi.ContextException)

Example 2 with ProcessStoreEvent

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);
}
Also used : QName(javax.xml.namespace.QName) ProcessStoreEvent(org.apache.ode.bpel.iapi.ProcessStoreEvent)

Example 3 with ProcessStoreEvent

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);
        }
    }
}
Also used : DeploymentUnitDAO(org.apache.ode.store.DeploymentUnitDAO) QName(javax.xml.namespace.QName) ProcessConf(org.apache.ode.bpel.iapi.ProcessConf) ConfStoreConnection(org.apache.ode.store.ConfStoreConnection) ProcessStoreEvent(org.apache.ode.bpel.iapi.ProcessStoreEvent) SQLException(java.sql.SQLException) RegistryException(org.wso2.carbon.registry.core.exceptions.RegistryException) ContextException(org.apache.ode.bpel.iapi.ContextException) ProcessConfDAO(org.apache.ode.store.ProcessConfDAO) CopyOnWriteArrayList(java.util.concurrent.CopyOnWriteArrayList)

Aggregations

ProcessStoreEvent (org.apache.ode.bpel.iapi.ProcessStoreEvent)3 QName (javax.xml.namespace.QName)2 ContextException (org.apache.ode.bpel.iapi.ContextException)2 ConfStoreConnection (org.apache.ode.store.ConfStoreConnection)2 DeploymentUnitDAO (org.apache.ode.store.DeploymentUnitDAO)2 ProcessConfDAO (org.apache.ode.store.ProcessConfDAO)2 SQLException (java.sql.SQLException)1 CopyOnWriteArrayList (java.util.concurrent.CopyOnWriteArrayList)1 ProcessConf (org.apache.ode.bpel.iapi.ProcessConf)1 RegistryException (org.wso2.carbon.registry.core.exceptions.RegistryException)1