Search in sources :

Example 51 with Node

use of org.wso2.charon3.core.utils.codeutils.Node 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 52 with Node

use of org.wso2.charon3.core.utils.codeutils.Node in project carbon-business-process by wso2.

the class ExpressionBasedOrgEntityProvider method getOrganizationalEntities.

public List<OrganizationalEntityDAO> getOrganizationalEntities(PeopleQueryEvaluator peopleQueryEvaluator, TFrom tFrom, EvaluationContext evaluationContext) {
    String expression = tFrom.newCursor().getTextValue().trim();
    log.debug("Evaluating expression " + expression + " for ExpressionBasedOrgEntityProvider");
    String expLang = (tFrom.getExpressionLanguage() == null) ? HumanTaskConstants.WSHT_EXP_LANG_XPATH20 : tFrom.getExpressionLanguage();
    ExpressionLanguageRuntime expLangRuntime = HumanTaskServiceComponent.getHumanTaskServer().getTaskEngine().getExpressionLanguageRuntime(expLang);
    List list = expLangRuntime.evaluate(expression, evaluationContext);
    List<OrganizationalEntityDAO> orgEntityList = new ArrayList<OrganizationalEntityDAO>();
    if (list.isEmpty() || list.size() > 1) {
        log.debug(" Organizational Entities evaluated to null or multiple list");
        return orgEntityList;
    }
    // Returned list should evaluate to an organizationalEntity or a user
    for (Object item : list) {
        if (item instanceof NodeList) {
            for (int i = 0; i < ((NodeList) item).getLength(); i++) {
                Node node = ((NodeList) item).item(i);
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    if (node.getLocalName().equals(HumanTaskConstants.userQname.getLocalPart()) && node.getNamespaceURI().equals(HumanTaskConstants.userQname.getNamespaceURI())) {
                        CommonTaskUtil.addOrgEntityForUserNode(node, peopleQueryEvaluator, orgEntityList);
                    } else if (node.getLocalName().equals(HumanTaskConstants.groupQname.getLocalPart()) && node.getNamespaceURI().equals(HumanTaskConstants.groupQname.getNamespaceURI())) {
                        CommonTaskUtil.addOrgEntityForGroupNode(node, peopleQueryEvaluator, orgEntityList);
                    } else if (node.getLocalName().equals("wrapper")) {
                        // Expression evaluator wraps the string with wrapper element name
                        CommonTaskUtil.addOrgEntityForUserNode(node, peopleQueryEvaluator, orgEntityList);
                    } else if (node.getLocalName().equals(HumanTaskConstants.organizationalEntityQname.getLocalPart()) && node.getNamespaceURI().equals(HumanTaskConstants.organizationalEntityQname.getNamespaceURI())) {
                        // This is an organizational Entity node, hence parse it as org entity
                        // Most probably this logic wont be required
                        CommonTaskUtil.addOrgEntitiesForOrganizationEntityNode(node, peopleQueryEvaluator, orgEntityList);
                    }
                } else if (node.getNodeType() == Node.TEXT_NODE) {
                    String nodeValue = node.getNodeValue().trim();
                    if (nodeValue.length() > 0) {
                        OrganizationalEntityDAO userOrgEntityForName = peopleQueryEvaluator.createUserOrgEntityForName(nodeValue);
                        if (userOrgEntityForName != null) {
                            orgEntityList.add(userOrgEntityForName);
                        }
                    }
                }
            }
        }
    }
    return orgEntityList;
}
Also used : OrganizationalEntityDAO(org.wso2.carbon.humantask.core.dao.OrganizationalEntityDAO) NodeList(org.w3c.dom.NodeList) Node(org.w3c.dom.Node) ArrayList(java.util.ArrayList) NodeList(org.w3c.dom.NodeList) ArrayList(java.util.ArrayList) List(java.util.List) ExpressionLanguageRuntime(org.wso2.carbon.humantask.core.engine.runtime.api.ExpressionLanguageRuntime)

Example 53 with Node

use of org.wso2.charon3.core.utils.codeutils.Node in project carbon-business-process by wso2.

the class LiteralBasedOrgEntityProvider method addOrgEntityForUserNode.

public static void addOrgEntityForUserNode(Node userNode, PeopleQueryEvaluator pqe, List<OrganizationalEntityDAO> orgEntityList) {
    NodeList childNodes = userNode.getChildNodes();
    if (childNodes.getLength() == 1) {
        Node textNode = childNodes.item(0);
        if (textNode != null && textNode.getNodeType() == Node.TEXT_NODE) {
            String username = textNode.getNodeValue();
            if (username != null) {
                username = username.trim();
                if (username.length() > 0) {
                    OrganizationalEntityDAO userOrgEntityForUser = pqe.createUserOrgEntityForName(username);
                    orgEntityList.add(userOrgEntityForUser);
                }
            }
        }
    }
}
Also used : NodeList(org.w3c.dom.NodeList) Node(org.w3c.dom.Node) OrganizationalEntityDAO(org.wso2.carbon.humantask.core.dao.OrganizationalEntityDAO)

Example 54 with Node

use of org.wso2.charon3.core.utils.codeutils.Node in project carbon-business-process by wso2.

the class LiteralBasedOrgEntityProvider method addOrgEntitiesForOrganizationEntityNode.

public static void addOrgEntitiesForOrganizationEntityNode(Node orgEntityNode, PeopleQueryEvaluator pqe, List<OrganizationalEntityDAO> orgEntityList) {
    // Org entity node should contain either a user elements or group elements
    if (orgEntityNode.getNodeType() == Node.ELEMENT_NODE) {
        NodeList userList = ((Element) orgEntityNode).getElementsByTagNameNS(HumanTaskConstants.userQname.getNamespaceURI(), HumanTaskConstants.userQname.getLocalPart());
        for (int j = 0; j < userList.getLength(); j++) {
            Node item = userList.item(j);
            NodeList childNodes = item.getChildNodes();
            if (childNodes.getLength() == 1) {
                Node textNode = childNodes.item(0);
                if (textNode != null && textNode.getNodeType() == Node.TEXT_NODE) {
                    String username = textNode.getNodeValue();
                    if (username != null) {
                        username = username.trim();
                        if (username.length() > 0) {
                            OrganizationalEntityDAO userOrgEntityForName = pqe.createUserOrgEntityForName(username);
                            orgEntityList.add(userOrgEntityForName);
                        }
                    }
                }
            }
        }
        NodeList groupList = ((Element) orgEntityNode).getElementsByTagNameNS(HumanTaskConstants.groupQname.getNamespaceURI(), HumanTaskConstants.groupQname.getLocalPart());
        for (int j = 0; j < groupList.getLength(); j++) {
            Node item = groupList.item(j);
            NodeList childNodes = item.getChildNodes();
            if (childNodes.getLength() == 1) {
                Node textNode = childNodes.item(0);
                if (textNode != null && textNode.getNodeType() == Node.TEXT_NODE) {
                    String groupName = textNode.getNodeValue();
                    if (groupName != null) {
                        groupName = groupName.trim();
                        if (groupName.length() > 0) {
                            OrganizationalEntityDAO groupOrgEntityForName = pqe.createGroupOrgEntityForRole(groupName);
                            orgEntityList.add(groupOrgEntityForName);
                        }
                    }
                }
            }
        }
    }
}
Also used : NodeList(org.w3c.dom.NodeList) Element(org.w3c.dom.Element) Node(org.w3c.dom.Node) OrganizationalEntityDAO(org.wso2.carbon.humantask.core.dao.OrganizationalEntityDAO)

Example 55 with Node

use of org.wso2.charon3.core.utils.codeutils.Node in project kubernetes by ballerinax.

the class KubernetesAnnotationProcessor method processDeployment.

/**
 * Process annotations and create deployment model object.
 *
 * @param attachmentNode annotation attachment node.
 * @return Deployment model object
 */
DeploymentModel processDeployment(AnnotationAttachmentNode attachmentNode) throws KubernetesPluginException {
    DeploymentModel deploymentModel = new DeploymentModel();
    List<BLangRecordLiteral.BLangRecordKeyValue> keyValues = ((BLangRecordLiteral) ((BLangAnnotationAttachment) attachmentNode).expr).getKeyValuePairs();
    for (BLangRecordLiteral.BLangRecordKeyValue keyValue : keyValues) {
        DeploymentConfiguration deploymentConfiguration = DeploymentConfiguration.valueOf(keyValue.getKey().toString());
        String annotationValue = resolveValue(keyValue.getValue().toString());
        switch(deploymentConfiguration) {
            case name:
                deploymentModel.setName(getValidName(annotationValue));
                break;
            case labels:
                deploymentModel.setLabels(getMap(((BLangRecordLiteral) keyValue.valueExpr).keyValuePairs));
                break;
            case enableLiveness:
                deploymentModel.setEnableLiveness(annotationValue);
                break;
            case livenessPort:
                deploymentModel.setLivenessPort(Integer.parseInt(annotationValue));
                break;
            case initialDelaySeconds:
                deploymentModel.setInitialDelaySeconds(Integer.parseInt(annotationValue));
                break;
            case periodSeconds:
                deploymentModel.setPeriodSeconds(Integer.parseInt(annotationValue));
                break;
            case username:
                deploymentModel.setUsername(annotationValue);
                break;
            case env:
                deploymentModel.setEnv(getMap(((BLangRecordLiteral) keyValue.valueExpr).keyValuePairs));
                break;
            case password:
                deploymentModel.setPassword(annotationValue);
                break;
            case baseImage:
                deploymentModel.setBaseImage(annotationValue);
                break;
            case push:
                deploymentModel.setPush(Boolean.valueOf(annotationValue));
                break;
            case buildImage:
                deploymentModel.setBuildImage(Boolean.valueOf(annotationValue));
                break;
            case image:
                deploymentModel.setImage(annotationValue);
                break;
            case dockerHost:
                deploymentModel.setDockerHost(annotationValue);
                break;
            case dockerCertPath:
                deploymentModel.setDockerCertPath(annotationValue);
                break;
            case imagePullPolicy:
                deploymentModel.setImagePullPolicy(annotationValue);
                break;
            case replicas:
                deploymentModel.setReplicas(Integer.parseInt(annotationValue));
                break;
            default:
                break;
        }
    }
    return deploymentModel;
}
Also used : DeploymentModel(org.ballerinax.kubernetes.models.DeploymentModel) BLangRecordLiteral(org.wso2.ballerinalang.compiler.tree.expressions.BLangRecordLiteral)

Aggregations

ArrayList (java.util.ArrayList)19 Node (org.w3c.dom.Node)13 BLangVariable (org.wso2.ballerinalang.compiler.tree.BLangVariable)13 BLangRecordLiteral (org.wso2.ballerinalang.compiler.tree.expressions.BLangRecordLiteral)13 List (java.util.List)12 SymbolEnv (org.wso2.ballerinalang.compiler.semantics.model.SymbolEnv)11 Map (java.util.Map)10 BLangNode (org.wso2.ballerinalang.compiler.tree.BLangNode)10 DiagnosticPos (org.wso2.ballerinalang.compiler.util.diagnotic.DiagnosticPos)10 QName (javax.xml.namespace.QName)8 NodeList (org.w3c.dom.NodeList)8 BLangExpression (org.wso2.ballerinalang.compiler.tree.expressions.BLangExpression)8 Name (org.wso2.ballerinalang.compiler.util.Name)8 Arrays (java.util.Arrays)7 HashMap (java.util.HashMap)7 AnnotationAttachmentNode (org.ballerinalang.model.tree.AnnotationAttachmentNode)7 Node (org.ballerinalang.model.tree.Node)7 BLangEndpoint (org.wso2.ballerinalang.compiler.tree.BLangEndpoint)7 BLangFunction (org.wso2.ballerinalang.compiler.tree.BLangFunction)7 BLangPackage (org.wso2.ballerinalang.compiler.tree.BLangPackage)7