if (pl.hasMyRole()) { Endpoint endpoint = myRoleEndpoints.get(pl); if (endpoint == null) throw new IllegalArgumentException("No service name for myRole plink " + pl.getName()); PartnerLinkMyRoleImpl myRole = new PartnerLinkMyRoleImpl(this, pl, endpoint); _myRoles.put(pl, myRole); if (pl.hasPartnerRole()) { Endpoint endpoint = _pconf.getInvokeEndpoints().get(pl.getName()); if (endpoint == null && pl.initializePartnerRole) throw new IllegalArgumentException(pl.getName() + " must be bound to an endpoint in deploy.xml"); PartnerLinkPartnerRoleImpl partnerRole = new PartnerLinkPartnerRoleImpl(this, pl, endpoint); _partnerRoles.put(pl, partnerRole);
public boolean equals(Object obj) { PartnerLinkInstance other = (PartnerLinkInstance) obj; return partnerLink.equals(other.partnerLink) && scopeInstanceId.equals(other.scopeInstanceId); }
public boolean migrate(Set<BpelProcess> registeredProcesses, BpelDAOConnection connection) { for (BpelProcess process : registeredProcesses) { __log.debug("Migrating correlators for process " + process.getConf().getProcessId()); ProcessDAO processDao = connection.getProcess(process.getConf().getProcessId()); for (OPartnerLink plink : process.getOProcess().getAllPartnerLinks()) { if (plink.hasMyRole()) { for (Iterator opI = plink.myRolePortType.getOperations().iterator(); opI.hasNext();) { Operation op = (Operation)opI.next(); try { CorrelatorDAO corr = processDao.getCorrelator(plink.getId() + "." + op.getName()); corr.setCorrelatorId(plink.getName() + "." + op.getName()); __log.debug("Migrated correlator " + plink.getName() + "." + op.getName()); } catch (IllegalArgumentException e) { __log.debug("Correlator with id " + plink.getId() + "." + op.getName() + " couldn't be found, skipping."); } } } } } return true; } }
public void initializePartnerLinks(Long parentScopeId, Collection<OPartnerLink> partnerLinks) { if (BpelProcess.__log.isTraceEnabled()) { BpelProcess.__log.trace(ObjectPrinter.stringifyMethodEnter("initializeEndpointReferences", new Object[] { "parentScopeId", parentScopeId, "partnerLinks", partnerLinks })); } ScopeDAO parent = _dao.getScope(parentScopeId); for (OPartnerLink partnerLink : partnerLinks) { PartnerLinkDAO pdao = parent.createPartnerLink(partnerLink.getId(), partnerLink.name, partnerLink.myRoleName, partnerLink.partnerRoleName); // If there is a myrole on the link, initialize the session id so it // is always // available for opaque correlations. The myrole session id should // never be changed. if (partnerLink.hasMyRole()) pdao.setMySessionId(new GUID().toString()); } }
static String genCorrelatorId(OPartnerLink plink, String opName) { return plink.getName() + "." + opName; }
onMessage.partnerLink.addCreateInstanceOperation(onMessage.operation); .getCorrelationSet())); onMessage.matchCorrelations.add(cset); onMessage.partnerLink.addCorrelationSetForOperation(onMessage.operation, cset, false); break; case YES: cset.hasJoinUseCases = true; onMessage.joinCorrelations.add(cset); onMessage.partnerLink.addCorrelationSetForOperation(onMessage.operation, cset, true); break; if (!onMessage.partnerLink.hasMyRole()) { throw new CompilationException(__cmsgsGeneral.errNoMyRoleOnReceivePartnerLink(onMessage.partnerLink .getName()));
public boolean migrate(Set<BpelProcess> registeredProcesses, BpelDAOConnection connection) { for (BpelProcess process : registeredProcesses) { __log.debug("Migrating correlators data for process " + process.getConf().getProcessId()); ProcessDAO processDao = connection.getProcess(process.getConf().getProcessId()); for (OPartnerLink plink : process.getOProcess().getAllPartnerLinks()) { if (plink.hasMyRole()) { for (Iterator opI = plink.myRolePortType.getOperations().iterator(); opI.hasNext();) { Operation op = (Operation)opI.next(); CorrelatorDAO corr = processDao.getCorrelator(plink.getName() + "." + op.getName()); // Changing all routes if (corr != null) { for (MessageRouteDAO routeDAO : corr.getAllRoutes()) { CorrelationKey oldKey = routeDAO.getCorrelationKey(); if (oldKey != null) { CorrelationKeySet keySet = new CorrelationKeySet(); keySet.add(oldKey); routeDAO.setCorrelationKeySet(keySet); } } } } } } } return true; } }
throw new FaultException(partnerLink.partnerLink.getOwner().constants.qnUninitializedPartnerRole); } else { partnerEpr = _bpelProcess._engine._contexts.eprContext.resolveEndpointReference(partnerEPR); mexDao.setOperation(operation.getName()); mexDao.setPortType(partnerLink.partnerLink.partnerRolePortType.getQName()); mexDao.setPartnerLinkModelId(partnerLink.partnerLink.getId()); mexDao.setPartnerLink(plinkDAO); mexDao.setProcess(_dao.getProcess()); EndpointReference myRoleEndpoint = partnerLink.partnerLink.hasMyRole() ? _bpelProcess .getInitialMyRoleEPR(partnerLink.partnerLink) : null; PartnerRoleMessageExchangeImpl mex =
if (custom.includeEndpoints() && oprocess != null) { for (OPartnerLink oplink : oprocess.getAllPartnerLinks()) { if (oplink.hasPartnerRole() && oplink.initializePartnerRole) {
protected PartnerRoleMessageExchangeImpl createPartnerRoleMessageExchangeImpl( MessageExchangeDAO mexdao, PortType ptype, Operation op, OPartnerLink plink, BpelProcess process) { return new PartnerRoleMessageExchangeImpl(this, mexdao, ptype, op, null, plink.hasMyRole() ? process .getInitialMyRoleEPR(plink) : null, process.getPartnerRoleChannel(plink)); }
private CorrelationKeySet computeCorrelationKeys(MyRoleMessageExchangeImpl mex) { CorrelationKeySet keySet = new CorrelationKeySet(); Operation operation = mex.getOperation(); Element msg = BpelRuntimeContextImpl.mergeHeaders(mex.getDAO().getRequest()); javax.wsdl.Message msgDescription = operation.getInput().getMessage(); Set<OScope.CorrelationSet> csets = _plinkDef.getNonInitiatingCorrelationSetsForOperation(operation); for (OScope.CorrelationSet cset : csets) { CorrelationKey key = computeCorrelationKey(cset, _process.getOProcess().messageTypes.get(msgDescription.getQName()), msg); keySet.add(key); } csets = _plinkDef.getJoinningCorrelationSetsForOperation(operation); for (OScope.CorrelationSet cset : csets) { CorrelationKey key = computeCorrelationKey(cset, _process.getOProcess().messageTypes.get(msgDescription.getQName()), msg); keySet.add(key); } // Let's creata a key based on the sessionId String mySessionId = mex.getProperty(MessageExchange.PROPERTY_SEP_MYROLE_SESSIONID); if (mySessionId != null) keySet.add(new CorrelationKey("-1", new String[] { mySessionId })); return keySet; }
protected PartnerLinkDAO fetchPartnerLinkDAO(PartnerLinkInstance pLink) { ScopeDAO scopeDAO = _dao.getScope(pLink.scopeInstanceId); return scopeDAO.getPartnerLink(pLink.partnerLink.getId()); }
case NO: oevent.matchCorrelations.add(cset); oevent.partnerLink.addCorrelationSetForOperation(oevent.operation, cset, false); break; case YES: cset.hasJoinUseCases = true; oevent.joinCorrelations.add(cset); oevent.partnerLink.addCorrelationSetForOperation(oevent.operation, cset, true);
private void compile(final PartnerLink plink) { OPartnerLink oplink = new OPartnerLink(_oprocess); oplink.debugInfo = createDebugInfo(plink, plink.toString()); try {
public boolean isPartnerLinkAssigned(String plink) { for (OActivity act : _compiledActivities) { if (act instanceof OAssign) { OAssign assign = (OAssign) act; for (OAssign.Copy copy : assign.copy) { if (copy.to instanceof OAssign.PartnerLinkRef) { if (((OAssign.PartnerLinkRef) copy.to).partnerLink.getName().equals(plink)) return true; } } } } return false; }
if (_oevent.partnerLink.hasPartnerRole()) {
private void setMexRole(MyRoleMessageExchangeImpl mex) { Operation operation = getMyRoleOperation(mex.getOperationName()); mex.getDAO().setPartnerLinkModelId(_plinkDef.getId()); mex.setPortOp(_plinkDef.myRolePortType, operation); mex.setPattern(operation.getOutput() == null ? MessageExchange.MessageExchangePattern.REQUEST_ONLY : MessageExchange.MessageExchangePattern.REQUEST_RESPONSE); }
&& !((OAssign.PartnerLinkRef) ocopy.to).partnerLink.hasPartnerRole()) { String lval = ((OAssign.PartnerLinkRef) ocopy.to).partnerLink.getName(); throw new CompilationException(__cmsgs.errCopyToUndeclaredPartnerRole(lval)); && !((OAssign.PartnerLinkRef) ocopy.from).partnerLink.hasMyRole()) { String lval = ((OAssign.PartnerLinkRef) ocopy.from).partnerLink.getName(); throw new CompilationException(__cmsgs.errCopyFromUndeclaredPartnerRole(lval, "myRole")); && !((OAssign.PartnerLinkRef) ocopy.from).partnerLink.hasPartnerRole()) { String lval = ((OAssign.PartnerLinkRef) ocopy.from).partnerLink.getName(); throw new CompilationException(__cmsgs.errCopyFromUndeclaredPartnerRole(lval, "partnerRole"));
public void writeEndpointReference(PartnerLinkInstance variable, Element data) throws FaultException { if (__log.isDebugEnabled()) { __log.debug("Writing endpoint reference " + variable.partnerLink.getName() + " with value " + DOMUtils.domToString(data)); } PartnerLinkDAO eprDAO = fetchPartnerLinkDAO(variable); eprDAO.setPartnerEPR(data); }
if (plink.hasMyRole()) { for (Iterator opI = plink.myRolePortType.getOperations().iterator(); opI.hasNext();) { Operation op = (Operation)opI.next(); try { CorrelatorDAO corr = processDao.getCorrelator(plink.getName() + "." + op.getName()); __log.debug("Migrated routes and message queue for correlator " + plink.getName() + "." + op.getName()); __log.debug("Correlator with id " + plink.getId() + "." + op.getName() + " couldn't be found, skipping.");