protected Map<String, Object> getParametersMap(RuntimeEngine runtime) { RuntimeManager manager = ((RuntimeEngineImpl)runtime).getManager(); Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("ksession", runtime.getKieSession()); try { parameters.put("taskService", runtime.getTaskService()); } catch (UnsupportedOperationException e) { // in case task service was not configured } parameters.put("runtimeManager", manager); parameters.put("classLoader", getRuntimeManager().getEnvironment().getClassLoader()); parameters.put("entityManagerFactory", runtime.getKieSession().getEnvironment().get(EnvironmentName.ENTITY_MANAGER_FACTORY)); parameters.put("kieContainer", getRuntimeManager().getKieContainer()); return parameters; }
public PerCaseRuntimeManager(RuntimeEnvironment environment, SessionFactory factory, TaskServiceFactory taskServiceFactory, String identifier) { super(environment, identifier); this.factory = factory; this.taskServiceFactory = taskServiceFactory; this.mapper = ((org.kie.internal.runtime.manager.RuntimeEnvironment) environment).getMapper(); this.registry.register(this); }
@Override public AuditService getAuditService() { if (auditService == null) { boolean usePersistence = ((InternalRuntimeManager)manager).getEnvironment().usePersistence(); if (usePersistence) { auditService = new JPAAuditLogService(getKieSession().getEnvironment()); } else { throw new UnsupportedOperationException("AuditService was not configured, supported only with persistence"); } } return auditService; }
RegisterableItemsFactory factory = internalManager.getEnvironment().getRegisterableItemsFactory(); assertNotNull(factory); assertTrue(factory instanceof InternalRegisterableItemsFactory); DeploymentDescriptor descriptor = internalManager.getDeploymentDescriptor(); assertNotNull(descriptor); assertEquals("org.jbpm.persistence.jpa", descriptor.getPersistenceUnit()); assertEquals(0, descriptor.getRequiredRoles().size()); RuntimeEngine engine = manager.getRuntimeEngine(ProcessInstanceIdContext.get()); assertNotNull(engine); KieSession kieSession = engine.getKieSession(); assertEquals(((SessionConfiguration) kieSession.getSessionConfiguration()).getSignalManagerFactory(), DefaultSignalManagerFactory.class.getName()); BusinessCalendar bc = (BusinessCalendar) kieSession.getEnvironment().get("jbpm.business.calendar"); assertNotNull(bc); assertTrue(bc instanceof TestBusinessCalendar); Object service = kieSession.getGlobal("service"); assertNotNull(service); assertTrue(service instanceof ArrayList); assertNull(kieSession.getProcessInstance(processInstanceId));
RegisterableItemsFactory factory = internalManager.getEnvironment().getRegisterableItemsFactory(); assertNotNull(factory); assertTrue(factory instanceof InternalRegisterableItemsFactory); DeploymentDescriptor descriptor = internalManager.getDeploymentDescriptor(); assertNotNull(descriptor); assertEquals("org.jbpm.persistence.jpa", descriptor.getPersistenceUnit()); assertEquals(0, descriptor.getRequiredRoles().size()); RuntimeEngine engine = manager.getRuntimeEngine(EmptyContext.get()); assertNotNull(engine); Object service = engine.getKieSession().getGlobal("service"); assertNotNull(service); assertTrue(service instanceof ArrayList);
DeploymentDescriptor descriptor = getRuntimeManager().getDeploymentDescriptor(); AbstractAuditLogger auditLogger = null; if ("true".equals(System.getProperty("jbpm.audit.jms.enabled")) || descriptor.getAuditMode() == AuditMode.JMS) { try { Properties properties = new Properties(); properties.load(getRuntimeManager().getEnvironment().getClassLoader().getResourceAsStream("/jbpm.audit.jms.properties")); } else if (descriptor.getAuditMode() == AuditMode.JPA){ if (descriptor.getPersistenceUnit().equals(descriptor.getAuditPersistenceUnit())) { auditLogger = AuditLoggerFactory.newJPAInstance(engine.getKieSession().getEnvironment()); } else { auditLogger = new JPAWorkingMemoryDbLogger(EntityManagerFactoryManager.get().getOrCreate(descriptor.getAuditPersistenceUnit()));
InternalRuntimeManager toBeManager = (InternalRuntimeManager) RuntimeManagerRegistry.get().getManager(migrationSpec.getToDeploymentId()); boolean migrateExecutorJobs = ((SimpleRuntimeEnvironment)currentManager.getEnvironment()).getEnvironmentTemplate().get("ExecutorService") != null; validate(migrateExecutorJobs); Map<Long, List<TimerInstance>> timerMigrated = null; txm = TransactionManagerFactory.get().newTransactionManager(currentManager.getEnvironment().getEnvironment()); transactionOwner = txm.begin(); org.kie.api.definition.process.Process toBeProcess = toBeManager.getEnvironment().getKieBase().getProcess(migrationSpec.getToProcessId()); String auditPu = currentManager.getDeploymentDescriptor().getAuditPersistenceUnit(); report.addEntry(Type.INFO, "Executor Jobs updated = " + executorRequestsUpdated + " for process instance id " + migrationSpec.getProcessInstanceId()); current = JPAKnowledgeService.newStatefulKnowledgeSession(currentManager.getEnvironment().getKieBase(), null, currentManager.getEnvironment().getEnvironment()); tobe = toBeManager.getEnvironment().getKieBase().newKieSession(); upgradeProcessInstance(current, tobe, migrationSpec.getProcessInstanceId(), migrationSpec.getToProcessId(), nodeMapping, em, toBeManager.getIdentifier()); if (current != null) { try { current.destroy(); } catch (SessionNotFoundException e) { tobe.destroy(); } catch (SessionNotFoundException e) {
protected Map<String, WorkItemHandler> getWorkItemHandlersFromDescriptor(RuntimeEngine runtime) { Map<String, WorkItemHandler> defaultHandlers = new HashMap<String, WorkItemHandler>(); DeploymentDescriptor descriptor = getRuntimeManager().getDeploymentDescriptor(); if (descriptor != null) { Map<String, Object> params = getParametersMap(runtime); for (NamedObjectModel model : descriptor.getWorkItemHandlers()) { Object hInstance = getInstanceFromModel(model, getRuntimeManager().getEnvironment().getClassLoader(), params); if (hInstance != null) { defaultHandlers.put(model.getName(), (WorkItemHandler) hInstance); } } } return defaultHandlers; }
protected List<TaskLifeCycleEventListener> getTaskListenersFromDescriptor() { List<TaskLifeCycleEventListener> defaultListeners = new ArrayList<TaskLifeCycleEventListener>(); DeploymentDescriptor descriptor = getRuntimeManager().getDeploymentDescriptor(); if (descriptor != null) { Map<String, Object> params = new HashMap<String, Object>(); params.put("runtimeManager", getRuntimeManager()); params.put("classLoader", getRuntimeManager().getEnvironment().getClassLoader()); params.put("kieContainer", getRuntimeManager().getKieContainer()); for (ObjectModel model : descriptor.getTaskEventListeners()) { Object taskListener = getInstanceFromModel(model, getRuntimeManager().getEnvironment().getClassLoader(), params); if (taskListener != null) { defaultListeners.add((TaskLifeCycleEventListener) taskListener); } } } return defaultListeners; }
protected Properties loadJMSProperties() throws IOException { Properties properties = new Properties(); InputStream input = getRuntimeManager().getEnvironment().getClassLoader().getResourceAsStream("/jbpm.audit.jms.properties"); // required for junit test if (input == null) { input = getRuntimeManager().getEnvironment().getClassLoader().getResourceAsStream("jbpm.audit.jms.properties"); } properties.load(input); return properties; } }
if (manager.getEnvironment().getKieBase().getProcess(migrationSpec.getToProcessId()) == null) { report.addEntry(Type.ERROR, "No process found for " + migrationSpec.getToProcessId() + " in deployment " + migrationSpec.getToDeploymentId()); String auditPu = manager.getDeploymentDescriptor().getAuditPersistenceUnit();
@Test public void testDeployWithDefaultDeploymentDescriptor() throws Exception { KieServices ks = KieServices.Factory.get(); ReleaseId releaseId = ks.newReleaseId("org.jbpm.test.dd", "kjar-with-dd", "1.0.0"); String processString = IOUtils.toString(this.getClass().getResourceAsStream("/BPMN2-ScriptTask.bpmn2"), "UTF-8"); Map<String, String> resources = new HashMap<String, String>(); resources.put("src/main/resources/BPMN2-ScriptTask.bpmn2", processString); InternalKieModule kJar1 = createKieJar(ks, releaseId, resources); installKjar(releaseId, kJar1); RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get() .newDefaultBuilder(releaseId) .userGroupCallback(userGroupCallback) .get(); manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment); assertNotNull(manager); InternalRuntimeManager internalManager = (InternalRuntimeManager) manager; DeploymentDescriptor descriptor = internalManager.getDeploymentDescriptor(); assertNotNull(descriptor); RegisterableItemsFactory factory = internalManager.getEnvironment().getRegisterableItemsFactory(); assertNotNull(factory); assertTrue(factory instanceof InternalRegisterableItemsFactory); assertNotNull(((InternalRegisterableItemsFactory) factory).getRuntimeManager()); String descriptorFromKjar = descriptor.toXml(); DeploymentDescriptorManager ddManager = new DeploymentDescriptorManager(); String defaultDescriptor = ddManager.getDefaultDescriptor().toXml(); assertEquals(defaultDescriptor, descriptorFromKjar); }
throw new RuntimeException("No scheduler found for " + timerServiceId); jtaTm = startTxIfNeeded(((GlobalTimerService) scheduler).getRuntimeManager().getEnvironment().getEnvironment());
@Override public void deploy(DeploymentUnit unit) { super.deploy(unit); if (!(unit instanceof VFSDeploymentUnit)) { throw new IllegalArgumentException("Invalid deployment unit provided - " + unit.getClass().getName()); } DeployedUnitImpl deployedUnit = new DeployedUnitImpl(unit); VFSDeploymentUnit vfsUnit = (VFSDeploymentUnit) unit; // Create Runtime Manager Based on the Reference RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.getDefault() .entityManagerFactory(getEmf()); AuditEventBuilder auditLoggerBuilder = setupAuditLogger(identityProvider, vfsUnit.getIdentifier()); if (beanManager != null) { builder.registerableItemsFactory(InjectableRegisterableItemsFactory.getFactory(beanManager, auditLoggerBuilder)); } loadProcesses(vfsUnit, builder, deployedUnit); loadRules(vfsUnit, builder, deployedUnit); commonDeploy(vfsUnit, deployedUnit, builder.get(), (KieContainer)builder.get().getEnvironment().get("kieContainer") ); }
InternalRuntimeManager toBeManager = (InternalRuntimeManager) RuntimeManagerRegistry.get().getManager(migrationSpec.getToDeploymentId()); boolean migrateExecutorJobs = ((SimpleRuntimeEnvironment)currentManager.getEnvironment()).getEnvironmentTemplate().get("ExecutorService") != null; validate(migrateExecutorJobs); Map<Long, List<TimerInstance>> timerMigrated = null; txm = TransactionManagerFactory.get().newTransactionManager(currentManager.getEnvironment().getEnvironment()); transactionOwner = txm.begin(); org.kie.api.definition.process.Process toBeProcess = toBeManager.getEnvironment().getKieBase().getProcess(migrationSpec.getToProcessId()); String auditPu = currentManager.getDeploymentDescriptor().getAuditPersistenceUnit(); report.addEntry(Type.INFO, "Executor Jobs updated = " + executorRequestsUpdated + " for process instance id " + migrationSpec.getProcessInstanceId()); current = JPAKnowledgeService.newStatefulKnowledgeSession(currentManager.getEnvironment().getKieBase(), null, currentManager.getEnvironment().getEnvironment()); tobe = toBeManager.getEnvironment().getKieBase().newKieSession(); upgradeProcessInstance(current, tobe, migrationSpec.getProcessInstanceId(), migrationSpec.getToProcessId(), nodeMapping, em, toBeManager.getIdentifier()); if (current != null) { try { current.destroy(); } catch (SessionNotFoundException e) { tobe.destroy(); } catch (SessionNotFoundException e) {
protected Map<String, Object> getGlobalsFromDescriptor(RuntimeEngine runtime) { Map<String, Object> globals = new HashMap<String, Object>(); DeploymentDescriptor descriptor = getRuntimeManager().getDeploymentDescriptor(); if (descriptor != null) { Map<String, Object> params = getParametersMap(runtime); for (NamedObjectModel model : descriptor.getGlobals()) { Object gInstance = getInstanceFromModel(model, getRuntimeManager().getEnvironment().getClassLoader(), params); if (gInstance != null) { globals.put(model.getName(), gInstance); } } } return globals; }
protected List<TaskLifeCycleEventListener> getTaskListenersFromDescriptor() { List<TaskLifeCycleEventListener> defaultListeners = new ArrayList<TaskLifeCycleEventListener>(); DeploymentDescriptor descriptor = getRuntimeManager().getDeploymentDescriptor(); if (descriptor != null) { Map<String, Object> params = new HashMap<String, Object>(); params.put("runtimeManager", getRuntimeManager()); params.put("classLoader", getRuntimeManager().getEnvironment().getClassLoader()); params.put("kieContainer", getRuntimeManager().getKieContainer()); for (ObjectModel model : descriptor.getTaskEventListeners()) { Object taskListener = getInstanceFromModel(model, getRuntimeManager().getEnvironment().getClassLoader(), params); if (taskListener != null) { defaultListeners.add((TaskLifeCycleEventListener) taskListener); } } } return defaultListeners; }
protected Properties loadJMSProperties() throws IOException { Properties properties = new Properties(); InputStream input = getRuntimeManager().getEnvironment().getClassLoader().getResourceAsStream("/jbpm.audit.jms.properties"); // required for junit test if (input == null) { input = getRuntimeManager().getEnvironment().getClassLoader().getResourceAsStream("jbpm.audit.jms.properties"); } properties.load(input); return properties; } }
if (manager.getEnvironment().getKieBase().getProcess(migrationSpec.getToProcessId()) == null) { report.addEntry(Type.ERROR, "No process found for " + migrationSpec.getToProcessId() + " in deployment " + migrationSpec.getToDeploymentId()); String auditPu = manager.getDeploymentDescriptor().getAuditPersistenceUnit();
parameters.put("ksession", runtime.getKieSession()); parameters.put("taskService", runtime.getTaskService()); parameters.put("runtimeManager", ((RuntimeEngineImpl)runtime).getManager()); if (getRuntimeManager().getKieContainer() != null) { parameters.put("kieContainer", getRuntimeManager().getKieContainer()); parameters.put("classLoader", getRuntimeManager().getEnvironment().getClassLoader()); try { InjectionHelper.wireSessionComponents(ksessionModel, runtime.getKieSession(), parameters); } catch (Exception e) { logger.debug("Failed with MVELBeanCreator. Falls back to default beanCreator", e);