@Override public void init(KieServerImpl kieServer, KieServerRegistry registry) { this.kieServer = kieServer; this.context = registry; configureServices(kieServer, registry); if (registry.getKieSessionLookupManager() != null) { registry.getKieSessionLookupManager().addHandler(new JBPMKieSessionLookupHandler()); } services.add(formManagerService); services.add(deploymentService); services.add(definitionService); services.add(processService); services.add(userTaskService); services.add(runtimeDataService); services.add(executorService); services.add(queryService); services.add(processInstanceMigrationService); services.add(processInstanceAdminService); services.add(userTaskAdminService); registerDefaultQueryDefinitions(); initialized = true; }
@Override public void updateContainer(String id, KieContainerInstance kieContainerInstance, Map<String, Object> parameters) { // essentially it's a redeploy to make sure all components are up to date, // though update of kie base is done only once on kie server level and KieContainer is reused across all extensions disposeContainer(id, kieContainerInstance, parameters); createContainer(id, kieContainerInstance, parameters); }
@Override public List<Message> healthCheck(boolean report) { List<Message> messages = KieServerExtension.super.healthCheck(report); try { // run base query to make sure data access layer is available runtimeDataService.getProcessInstanceById(-99999); if (report) { messages.add(new Message(Severity.INFO, getExtensionName() + " is alive")); } } catch (Exception e) { messages.add(new Message(Severity.ERROR, getExtensionName() + " failed due to " + e.getMessage())); } return messages; }
addAsyncHandler(unit, kieContainer); addTaskCleanUpProcessListener(unit, kieContainer); addTaskBAMEventListener(unit, kieContainer); addProcessIdentityProcessListener(unit, kieContainer); InputStream qdStream = definitionsURL.openStream(); loadAndRegisterQueryDefinitions(qdStream, kieContainerInstance.getMarshaller(MarshallingFormat.JSON), id);
this.isExecutorAvailable = isExecutorOnClasspath(); EntityManagerFactory emf = build(getPersistenceProperties(config)); EntityManagerFactoryManager.get().addEntityManagerFactory(persistenceUnitName, emf);
protected void addTaskCleanUpProcessListener(final KModuleDeploymentUnit unit, final InternalKieContainer kieContainer) { final DeploymentDescriptor descriptor = getDeploymentDescriptor(unit, kieContainer); descriptor.getBuilder().addEventListener( new ObjectModel( "mvel", "new org.jbpm.services.task.admin.listener.TaskCleanUpProcessEventListener(taskService)" ) ); unit.setDeploymentDescriptor(descriptor); }
protected void addAsyncHandler(final KModuleDeploymentUnit unit, final InternalKieContainer kieContainer) { // add async only when the executor component is not disabled if (isExecutorAvailable && executorService != null) { final DeploymentDescriptor descriptor = getDeploymentDescriptor(unit, kieContainer); descriptor.getBuilder() .addWorkItemHandler(new NamedObjectModel("mvel", "async", "new org.jbpm.executor.impl.wih.AsyncWorkItemHandler(org.jbpm.executor.ExecutorServiceFactory.newExecutorService(null),\"org.jbpm.executor.commands.PrintOutCommand\")")); unit.setDeploymentDescriptor(descriptor); } }
protected void addProcessIdentityProcessListener(final KModuleDeploymentUnit unit, final InternalKieContainer kieContainer) { final DeploymentDescriptor descriptor = getDeploymentDescriptor(unit, kieContainer); descriptor.getBuilder().addEventListener( new ObjectModel( "mvel", "new org.jbpm.kie.services.impl.IdentityProviderAwareProcessListener(ksession)" ) ); unit.setDeploymentDescriptor(descriptor); }
protected void addTaskBAMEventListener(final KModuleDeploymentUnit unit, final InternalKieContainer kieContainer) { final DeploymentDescriptor descriptor = getDeploymentDescriptor(unit, kieContainer); if (descriptor.getAuditMode() != AuditMode.NONE) { descriptor.getBuilder().addTaskEventListener( new ObjectModel( "mvel", "new org.jbpm.services.task.lifecycle.listeners.BAMTaskEventListener(false)" ) ); unit.setDeploymentDescriptor(descriptor); } }