Search in sources :

Example 1 with ConfStoreConnection

use of org.apache.ode.store.ConfStoreConnection 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 ConfStoreConnection

use of org.apache.ode.store.ConfStoreConnection 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)

Example 3 with ConfStoreConnection

use of org.apache.ode.store.ConfStoreConnection in project carbon-business-process by wso2.

the class ProcessStoreImpl method setState.

public void setState(final QName pid, final ProcessState processState) {
    validateMethodParameters(pid, processState);
    final String duName = getDeploymentUnitForProcess(pid);
    validateDeploymentUnitForTheProcess(duName, pid);
    ProcessState old = exec(new Callable<ProcessState>() {

        public ProcessState call(ConfStoreConnection conn) {
            DeploymentUnitDAO duDao = conn.getDeploymentUnit(duName);
            if (duDao == null) {
                String errMsg = "Deployment unit " + duName + " not found.";
                log.error(errMsg);
                throw new ContextException(errMsg);
            }
            ProcessConfDAO pConfDao = duDao.getProcess(pid);
            if (pConfDao == null) {
                String errMsg = "Process " + pid + " not found in deployment unit " + duName + ".";
                log.error(errMsg);
                throw new ContextException(errMsg);
            }
            ProcessState old = pConfDao.getState();
            pConfDao.setState(processState);
            return old;
        }
    });
    ProcessConfigurationImpl pConf = (ProcessConfigurationImpl) getProcessConfiguration(pid);
    pConf.setState(processState);
    if (old != null && !old.equals(processState)) {
        fireStateChange(pid, processState, duName);
    }
}
Also used : ProcessState(org.apache.ode.bpel.iapi.ProcessState) DeploymentUnitDAO(org.apache.ode.store.DeploymentUnitDAO) ConfStoreConnection(org.apache.ode.store.ConfStoreConnection) ProcessConfDAO(org.apache.ode.store.ProcessConfDAO) ContextException(org.apache.ode.bpel.iapi.ContextException)

Aggregations

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