private void validate() { InternalRuntimeManager manager = (InternalRuntimeManager) getKnowledgeRuntime().getEnvironment().get("RuntimeManager"); if (manager != null) { // check if process instance is owned by the same manager as the one owning ksession if (hasDeploymentId() && !manager.getIdentifier().equals(getDeploymentId())) { throw new IllegalStateException("Process instance " + getId() + " is owned by another deployment " + getDeploymentId() + " != " + manager.getIdentifier()); } } }
contextId = manager.getIdentifier(); ksessionId = mapper.findMapping(context, manager.getIdentifier()); if (ksessionId == null) { ksession = factory.newKieSession(); ksessionId = ksession.getIdentifier(); if (context instanceof CaseContext) { ksession.execute(new SaveMappingCommand(mapper, context, ksessionId, manager.getIdentifier())); attachManager(engine); registerDisposeCallback(engine, new DisposeSessionTransactionSynchronization(manager, engine), ksession.getEnvironment()); ksession.addEventListener(new MaintainMappingListener(ksessionId, engine, manager.getIdentifier(), contextId.toString())); Object contexts = mapper.findContextId(ksession.getIdentifier(), manager.getIdentifier()); if (contexts instanceof Collection) { KieSession finalKieSession = ksession;
processInstance.setDeploymentId(manager.getIdentifier());
upgradeProcessInstance(current, tobe, migrationSpec.getProcessInstanceId(), migrationSpec.getToProcessId(), nodeMapping, em, toBeManager.getIdentifier());
Long found = mapper.findMapping(context, manager.getIdentifier()); if (found == null) { removeLocalRuntime(engine); return localRuntime.getKieSession(); ksessionId = mapper.findMapping(context, manager.getIdentifier()); if (ksessionId == null) { throw new SessionNotFoundException("No session found for context " + context.getContextId()); attachManager(engine); registerDisposeCallback(engine, new DisposeSessionTransactionSynchronization(manager, engine), ksession.getEnvironment()); ksession.addEventListener(new MaintainMappingListener(ksessionId, engine, manager.getIdentifier())); return ksession;
@SuppressWarnings({"rawtypes", "unchecked"}) @Override public void notifyOnDeploy(DeploymentUnit unit, DeployedUnit deployedUnit) { super.notifyOnDeploy(unit, deployedUnit); InternalRuntimeManager runtimeManager = (InternalRuntimeManager) deployedUnit.getRuntimeManager(); if (runtimeManager instanceof PerCaseRuntimeManager) { AbstractEventSupport eventSupport =((PerCaseRuntimeManager) runtimeManager).getCaseEventSupport(); Map<String, CaseEventListener> foundBeans = context.getBeansOfType(CaseEventListener.class); for (CaseEventListener listener : foundBeans.values()) { eventSupport.addEventListener(listener); logger.debug("Registering {} as case event listener on {}", listener, runtimeManager.getIdentifier()); } } }
private void validate() { InternalRuntimeManager manager = (InternalRuntimeManager) getKnowledgeRuntime().getEnvironment().get("RuntimeManager"); if (manager != null) { // check if process instance is owned by the same manager as the one owning ksession if (hasDeploymentId() && !manager.getIdentifier().equals(getDeploymentId())) { throw new IllegalStateException("Process instance " + getId() + " is owned by another deployment " + getDeploymentId() + " != " + manager.getIdentifier()); } } }
processInstance.setDeploymentId(manager.getIdentifier());
contextId = manager.getIdentifier(); ksessionId = mapper.findMapping(context, manager.getIdentifier()); if (ksessionId == null) { ksession = factory.newKieSession(); ksessionId = ksession.getIdentifier(); if (context instanceof CaseContext) { ksession.execute(new SaveMappingCommand(mapper, context, ksessionId, manager.getIdentifier())); attachManager(engine); registerDisposeCallback(engine, new DisposeSessionTransactionSynchronization(manager, engine), ksession.getEnvironment()); ksession.addEventListener(new MaintainMappingListener(ksessionId, engine, manager.getIdentifier(), contextId.toString())); Object contexts = mapper.findContextId(ksession.getIdentifier(), manager.getIdentifier()); if (contexts instanceof Collection) { KieSession finalKieSession = ksession;
upgradeProcessInstance(current, tobe, migrationSpec.getProcessInstanceId(), migrationSpec.getToProcessId(), nodeMapping, em, toBeManager.getIdentifier());
Long found = mapper.findMapping(context, manager.getIdentifier()); if (found == null) { removeLocalRuntime(engine); return localRuntime.getKieSession(); ksessionId = mapper.findMapping(context, manager.getIdentifier()); if (ksessionId == null) { throw new SessionNotFoundException("No session found for context " + context.getContextId()); attachManager(engine); registerDisposeCallback(engine, new DisposeSessionTransactionSynchronization(manager, engine), ksession.getEnvironment()); ksession.addEventListener(new MaintainMappingListener(ksessionId, engine, manager.getIdentifier())); return ksession;