private Integer getTenantId(ExtensionContext context) { DeploymentUnitDir du = new DeploymentUnitDir(new File(context.getDUDir())); QName processIdQname = new QName(context.getProcessModel().getQName().getNamespaceURI(), context.getProcessModel().getQName().getLocalPart() + "-" + du.getStaticVersion()); return BAMPublisherServiceComponent.getBPELServer(). getMultiTenantProcessStore().getTenantId(processIdQname); }
if (!_ectx.isVariableVisible(name)) { return ScriptableObject.NOT_FOUND; __logger.debug("Reading BPEL variable '" + name + "'."); Node n = _ectx.readVariable(name); XMLObject xmlObj = (XMLObject)_sctx.newObject(start, "XML", new Object[] {Context.javaToJS(TopLevelFunctions.domToString(n), start)}); _env.put(name, xmlObj);
context.getInternalInstance().getProcessModel().getOwner(), qnVariableData, qnGetVariableProperty, qnGetLinkStatus, qnDoXslTransform, false); OExpressionLanguage oExpressionLanguage= new OExpressionLanguage(context.getProcessModel().getOwner(),null); oExpressionLanguage.expressionLanguageUri="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"; oexpr.expressionLanguage= oExpressionLanguage; context.getInternalInstance().getExpLangRuntime().registerRuntime(oExpressionLanguage); } catch (ConfigurationException ex) { String errMsg = "Error when trying to register xpath runtime"; ScopeFrame scopeFrame=((ExtensionContextImpl)context).getScopeFrame(); ExprEvaluationContextImpl exprEvaluationContext= new ExprEvaluationContextImpl( scopeFrame,context.getInternalInstance()); oexpr.vars = (HashMap)context.getVisibleVariables(); oexpr.namespaceCtx = context.getProcessModel().namespaceContext; List resultList= context.getInternalInstance().getExpLangRuntime().evaluate( oexpr, exprEvaluationContext); if(result != null) {
/** * Called when the response for the above service received * * @param mexId MessageExchange id */ public void onRequestReceived(String mexId) throws FaultException { _log.info("Response received"); //((ExtensionContextImpl)extensionContext).setBpelRuntimeContext(context); Element notificationMessageEle = extensionContext.getInternalInstance().getMyRequest(mexId); Node part = extensionContext.getPartData(notificationMessageEle, longRunningActivity.getOutputVariable()); _log.info("RESPONSE: " + DOMUtils.domToString(notificationMessageEle)); _log.info("PART: " + DOMUtils.domToString(part)); extensionContext.writeVariable(longRunningActivity.getOutputVariable(), part); extensionContext.complete(cid); }
String corId = null; try { Element inputEle = (Element) context.readVariable(longRunningActivity.getInputVariable()); Node inputNode = inputEle.getFirstChild().getFirstChild(); context.setCorrelationValues(correlationValues); String correlatorId = genCorrelatorId(); if (correlatorId == null) { context.setCorrelatorId(correlatorId);
private Object[] createMetadata(BAMStreamConfiguration stream, ExtensionContext context, Element element) throws FaultException { List<BAMKey> metaBAMKeyList = stream.getMetaBAMKeyList(); int objectListSize = metaBAMKeyList.size() + 2; Object[] dataArray = new Object[objectListSize]; dataArray[0] = getTenantId(context); dataArray[1] = context.getProcessModel().getQName().toString(); int startIndex = 2; fillDataArray(dataArray, metaBAMKeyList, startIndex, context, element); return dataArray; }
Scriptable scope = new TopLevelFunctions(context, ctx, context.getDUDir()); String source = element.getTextContent(); VariableDelegator delegator = new VariableDelegator(scope, context, ctx); ctx.evaluateString(delegator, source, context.getActivityName(), 1, null); delegator.writeVariables(); } catch (WrappedException e) {
private void fillDataArray(Object[] dataArray, List<BAMKey> payloadBAMKeyList, int startIndex, ExtensionContext context, Element element) throws FaultException { for (int i = 0; i < payloadBAMKeyList.size(); i++) { BAMKey bamKey = payloadBAMKeyList.get(i); if (bamKey.getExpression() != null) { dataArray[i + startIndex] = evaluateXPathExpression(context, bamKey.getExpression(), element); } else if (bamKey.getVariable() != null && bamKey.getPart() == null) { if (bamKey.getQuery() == null) { /* simple types should be specified for here */ dataArray[i + startIndex] = context.readVariable(bamKey.getVariable()).getTextContent(); } else { String errMsg = "This functionality is currently not supported"; log.error(errMsg); handleException(errMsg); } } else if (bamKey.getVariable() != null && bamKey.getPart() != null) { NodeList childNodes = context.readVariable(bamKey.getVariable()).getChildNodes(); String result = null; String part = bamKey.getPart(); for(int j=0; j < childNodes.getLength(); j++) { Node item = childNodes.item(j); if(item != null && item.getNodeType() == Node.ELEMENT_NODE && item.getLocalName().equals(part)) { /* remove the payload part */ result = DOMUtils.domToString(DOMUtils.getFirstChildElement(item)); } } dataArray[i + startIndex] = result; } } }
LongRunningActivity(Element content) { this.content = content; du = new DeploymentUnitDir(new File(extensionContext.getDUDir())); }
private Object[] createCorrelationData(BAMStreamConfiguration stream, ExtensionContext context, Element element) throws FaultException { List<BAMKey> correlationBAMKeyList = stream.getCorrelationBAMKeyList(); int objectListSize = correlationBAMKeyList.size() + 1; Object[] dataArray = new Object[objectListSize]; dataArray[0] = context.getInternalInstance().getPid().toString(); int startIndex = 1; fillDataArray(dataArray, correlationBAMKeyList, startIndex, context, element); return dataArray; }
public void writeVariables() throws FaultException, ExternalVariableModuleException { for (String varName : _variables) { if (__logger.isDebugEnabled()) { __logger.debug("Writing BPEL variable '" + varName + "' to '" + _env.get(varName) + "'."); } //TODO: only changed variables should be written. Its currently not that easy // to detect whether the content has changed without recursively injecting // emcaPut implementations. _ectx.writeVariable(varName, XMLLibImpl.toDomNode(_env.get(varName))); } } }
TenantProcessStore tenantsProcessStore = BAMPublisherServiceComponent.getBPELServer().getMultiTenantProcessStore().getTenantsProcessStore(tenantId); String processName = context.getProcessModel().getName(); config = (EventPublisherConfig) tenantsProcessStore.getDataPublisher(processName);
String variable = context.readVariable(analyticsKey.getVariable()).getTextContent(); NodeList childNodes = context.readVariable(analyticsKey.getVariable()).getChildNodes(); String result = null; String part = analyticsKey.getPart();
private Integer getTenantId(ExtensionContext context) { DeploymentUnitDir du = new DeploymentUnitDir(new File(context.getDUDir())); QName processIdQname = new QName(context.getProcessModel().getQName().getNamespaceURI(), context.getProcessModel().getQName().getLocalPart() + "-" + du.getStaticVersion()); return AnalyticsPublisherServiceComponent.getBPELServer(). getMultiTenantProcessStore().getTenantId(processIdQname); }
context.getInternalInstance().getProcessModel().getOwner(), qnVariableData, qnGetVariableProperty, qnGetLinkStatus, qnDoXslTransform, false); OExpressionLanguage oExpressionLanguage= new OExpressionLanguage(context.getProcessModel().getOwner(),null); oExpressionLanguage.expressionLanguageUri="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"; oexpr.expressionLanguage= oExpressionLanguage; context.getInternalInstance().getExpLangRuntime().registerRuntime(oExpressionLanguage); } catch (ConfigurationException ex) { String errMsg = "Error when trying to register xpath runtime"; ScopeFrame scopeFrame=((ExtensionContextImpl)context).getScopeFrame(); ExprEvaluationContextImpl exprEvaluationContext= new ExprEvaluationContextImpl( scopeFrame,context.getInternalInstance()); oexpr.vars = (HashMap)context.getVisibleVariables(); oexpr.namespaceCtx = context.getProcessModel().namespaceContext; List resultList= context.getInternalInstance().getExpLangRuntime().evaluate( oexpr, exprEvaluationContext); if(result != null) {
BAMPublisherServiceComponent.getBPELServer().getMultiTenantProcessStore().getTenantsProcessStore(tenantId); String processName = context.getProcessModel().getName().toString();
public String getServiceEPR() throws FaultException { if (du == null) { du = new DeploymentUnitDir(new File(extensionContext.getDUDir())); OProcess processModel = extensionContext.getProcessModel(); TDeployment.Process myProcess = null; List<TDeployment.Process> processList = deployDocument.getDeploy().getProcessList();
AnalyticsPublisherServiceComponent.getBPELServer().getMultiTenantProcessStore().getTenantsProcessStore(tenantId); String processName = context.getProcessModel().getName().toString();
private AsyncDataPublisher createAsyncDataPublisher(ExtensionContext context, int tenantId, String bamServerProfileName, BAMStreamConfiguration stream) throws FaultException { AsyncDataPublisher dataPublisher = null; EventPublisherConfig config = null; TenantProcessStore tenantsProcessStore = BAMPublisherServiceComponent.getBPELServer().getMultiTenantProcessStore().getTenantsProcessStore(tenantId); String processName = context.getProcessModel().getName().toString(); config = (EventPublisherConfig)tenantsProcessStore.getDataPublisher(processName); if(config == null) { BAMServerProfile bamServerProfile = getBAMServerProfile(tenantId, bamServerProfileName); dataPublisher = new AsyncDataPublisher(bamServerProfile.getUrl(), bamServerProfile.getUserName(), bamServerProfile.getPassword()); log.info("BPEL BAM data publisher created"); addEventStream(dataPublisher, stream); config = new EventPublisherConfig(dataPublisher); config.addEventStream(stream.getName(), stream.getVersion()); tenantsProcessStore.addDataPublisher(processName, config); } else { dataPublisher = config.getDataPublisher(); if(!config.eventStreamAlreadyDefined(stream.getName(), stream.getVersion())) { addEventStream(config.getDataPublisher(), stream); config.addEventStream(stream.getName(), stream.getVersion()); } } return dataPublisher; }