builder.setBuildHandler(new MergeModeBuildHandler(mode)); break; case OVERRIDE_EMPTY: builder.auditMode(slave.getAuditMode()); builder.auditPersistenceUnit(slave.getAuditPersistenceUnit()); builder.persistenceMode(slave.getPersistenceMode()); builder.persistenceUnit(slave.getPersistenceUnit()); builder.runtimeStrategy(slave.getRuntimeStrategy()); builder.setConfiguration(slave.getConfiguration()); builder.setEnvironmentEntries(slave.getEnvironmentEntries()); builder.setEventListeners(slave.getEventListeners()); builder.setGlobals(slave.getGlobals()); builder.setMarshalingStrategies(slave.getMarshallingStrategies()); builder.setTaskEventListeners(slave.getTaskEventListeners()); builder.setWorkItemHandlers(slave.getWorkItemHandlers()); builder.setRequiredRoles(slave.getRequiredRoles()); builder.setClasses(slave.getClasses()); builder.setLimitSerializationClasses(slave.getLimitSerializationClasses()); merged = builder.get(); break; builder.auditMode(slave.getAuditMode()); builder.auditPersistenceUnit(slave.getAuditPersistenceUnit()); builder.persistenceMode(slave.getPersistenceMode()); builder.persistenceUnit(slave.getPersistenceUnit()); builder.runtimeStrategy(slave.getRuntimeStrategy());
.addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"})); .auditMode(AuditMode.NONE) .persistenceMode(PersistenceMode.JPA) .persistenceUnit("my.custom.unit") .auditPersistenceUnit("my.custom.unit2"); .auditMode(AuditMode.JMS) .persistenceMode(PersistenceMode.JPA) .persistenceUnit("my.custom.unit2") .auditPersistenceUnit("my.custom.altered") .runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE) .addEnvironmentEntry(new NamedObjectModel("IS_JTA", "java.lang.Boolean", new Object[]{"false"}));
.addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"})) .setLimitSerializationClasses(true); .auditMode(AuditMode.JMS) .persistenceMode(PersistenceMode.JPA) .persistenceUnit("my.custom.unit") .auditPersistenceUnit("my.custom.unit2") .setLimitSerializationClasses(false);
public DeploymentDescriptor clearClone() throws CloneNotSupportedException { DeploymentDescriptorImpl clone = new DeploymentDescriptorImpl(); clone.getBuilder() .setClasses(getClasses()) .setConfiguration(getConfiguration()) .setEnvironmentEntries(getEnvironmentEntries()) .setEventListeners(getEventListeners()) .setGlobals(getGlobals()) .setMarshalingStrategies(getMarshallingStrategies()) .setRequiredRoles(getRequiredRoles()) .setTaskEventListeners(getTaskEventListeners()) .setWorkItemHandlers(getWorkItemHandlers()) .auditMode(getAuditMode()) .auditPersistenceUnit(getAuditPersistenceUnit()) .persistenceMode(getPersistenceMode()) .persistenceUnit(getPersistenceUnit()) .runtimeStrategy(getRuntimeStrategy()) .setLimitSerializationClasses(getLimitSerializationClasses()); removeTransient(clone.configuration); removeTransient(clone.environmentEntries); removeTransient(clone.eventListeners); removeTransient(clone.globals); removeTransient(clone.marshallingStrategies); removeTransient(clone.taskEventListeners); removeTransient(clone.workItemHandlers); return clone; }
.runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE) .addMarshalingStrategy(new ObjectModel("org.jbpm.runtime.manager.impl.deploy" + ".RuntimeManagerWithDescriptorTest$TestMarshallingStrategy")) .addConfiguration(new NamedObjectModel("drools.processSignalManagerFactory", "java.lang.String", new Object[]{DefaultSignalManagerFactory.class.getName()})) .addEnvironmentEntry(new NamedObjectModel("jbpm.business.calendar", "org.jbpm.runtime.manager.impl.deploy.RuntimeManagerWithDescriptorTest$TestBusinessCalendar")) .addEventListener(new ObjectModel("org.jbpm.runtime.manager.impl.deploy" + ".RuntimeManagerWithDescriptorTest$TestProcessEventListener")) .addGlobal(new NamedObjectModel("service", "java.util.ArrayList")) .addTaskEventListener(new ObjectModel("org.jbpm.runtime.manager.impl.deploy" + ".RuntimeManagerWithDescriptorTest$TestTaskEventListener")) .addWorkItemHandler(new NamedObjectModel("Manual Task", "org.jbpm.runtime.manager.impl.deploy" + ".RuntimeManagerWithDescriptorTest$TestWorkItemHandler")); resources.put("src/main/resources/" + DeploymentDescriptor.META_INF_LOCATION, customDescriptor.toXml());
.addWorkItemHandler(new NamedObjectModel("mvel", "Log", "new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler()")); .auditMode(AuditMode.JMS) .persistenceMode(PersistenceMode.JPA) .persistenceUnit(null) .auditPersistenceUnit("") .addWorkItemHandler(new NamedObjectModel("mvel", "Log", "new org.jbpm.process.instance.impl.demo.CustomSystemOutWorkItemHandler()"));
protected DeploymentDescriptor createDeploymentDescriptor() { //add this listener by default listenerMvelDefinitions.add("new org.jbpm.casemgmt.impl.util.TrackingCaseEventListener()"); DeploymentDescriptor customDescriptor = new DeploymentDescriptorImpl("org.jbpm.domain"); DeploymentDescriptorBuilder ddBuilder = customDescriptor.getBuilder().runtimeStrategy(RuntimeStrategy.PER_CASE).addMarshalingStrategy(new ObjectModel("mvel", "org.jbpm.casemgmt.impl.marshalling.CaseMarshallerFactory.builder().withDoc().get()")).addWorkItemHandler(new NamedObjectModel("mvel", "StartCaseInstance", "new org.jbpm.casemgmt.impl.wih.StartCaseWorkItemHandler(ksession)")); listenerMvelDefinitions.forEach(listenerDefinition -> ddBuilder.addEventListener(new ObjectModel("mvel", listenerDefinition))); getProcessListeners().forEach(listener -> ddBuilder.addEventListener(listener)); getWorkItemHandlers().forEach(listener -> ddBuilder.addWorkItemHandler(listener)); return customDescriptor; }
@Test public void testWriteDeploymentDescriptorXmlWithTransientElements() { DeploymentDescriptor descriptor = new DeploymentDescriptorImpl("org.jbpm.domain"); descriptor.getBuilder() .addMarshalingStrategy(new TransientObjectModel("org.jbpm.testCustomStrategy", new Object[]{ new ObjectModel("java.lang.String", new Object[]{"param1"}), "param2"})) .addWorkItemHandler(new TransientNamedObjectModel("mvel", "Log", "new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler()")) .addRequiredRole("experts"); String deploymentDescriptorXml = descriptor.toXml(); assertNotNull(deploymentDescriptorXml); logger.info(deploymentDescriptorXml); ByteArrayInputStream stream = new ByteArrayInputStream(deploymentDescriptorXml.getBytes()); DeploymentDescriptor fromXml = DeploymentDescriptorIO.fromXml(stream); assertNotNull(fromXml); assertEquals("org.jbpm.domain", fromXml.getPersistenceUnit()); assertEquals("org.jbpm.domain", fromXml.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, fromXml.getAuditMode()); assertEquals(PersistenceMode.JPA, fromXml.getPersistenceMode()); assertEquals(RuntimeStrategy.SINGLETON, fromXml.getRuntimeStrategy()); assertEquals(0, fromXml.getMarshallingStrategies().size()); assertEquals(0, fromXml.getConfiguration().size()); assertEquals(0, fromXml.getEnvironmentEntries().size()); assertEquals(0, fromXml.getEventListeners().size()); assertEquals(0, fromXml.getGlobals().size()); assertEquals(0, fromXml.getTaskEventListeners().size()); assertEquals(0, fromXml.getWorkItemHandlers().size()); assertEquals(1, fromXml.getRequiredRoles().size()); }
@Override protected DeploymentDescriptor createDeploymentDescriptor() { if (createDescriptor()) { DeploymentDescriptor customDescriptor = new DeploymentDescriptorImpl("org.jbpm.domain"); DeploymentDescriptorBuilder ddBuilder = customDescriptor.getBuilder(); for (ObjectModel listener : getProcessListeners()) { ddBuilder.addEventListener(listener); } for (ObjectModel listener : getTaskListeners()) { ddBuilder.addTaskEventListener(listener); } for (NamedObjectModel listener : getWorkItemHandlers()) { ddBuilder.addWorkItemHandler(listener); } return customDescriptor; } return null; }
.runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE) .auditPersistenceUnit("org.jbpm.audit") .addGlobal(new NamedObjectModel("service", "org.jbpm.global.Service")); .runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE);
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); } }
@Test public void testWriteDeploymentDescriptorXml() { DeploymentDescriptor descriptor = new DeploymentDescriptorImpl("org.jbpm.domain"); descriptor.getBuilder() .addMarshalingStrategy(new ObjectModel("org.jbpm.testCustomStrategy", new Object[]{ new ObjectModel("java.lang.String", new Object[]{"param1"}), "param2"})) .addRequiredRole("experts"); String deploymentDescriptorXml = descriptor.toXml(); assertNotNull(deploymentDescriptorXml); logger.info(deploymentDescriptorXml); ByteArrayInputStream stream = new ByteArrayInputStream(deploymentDescriptorXml.getBytes()); DeploymentDescriptor fromXml = DeploymentDescriptorIO.fromXml(stream); assertNotNull(fromXml); assertEquals("org.jbpm.domain", fromXml.getPersistenceUnit()); assertEquals("org.jbpm.domain", fromXml.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, fromXml.getAuditMode()); assertEquals(PersistenceMode.JPA, fromXml.getPersistenceMode()); assertEquals(RuntimeStrategy.SINGLETON, fromXml.getRuntimeStrategy()); assertEquals(1, fromXml.getMarshallingStrategies().size()); assertEquals(0, fromXml.getConfiguration().size()); assertEquals(0, fromXml.getEnvironmentEntries().size()); assertEquals(0, fromXml.getEventListeners().size()); assertEquals(0, fromXml.getGlobals().size()); assertEquals(0, fromXml.getTaskEventListeners().size()); assertEquals(0, fromXml.getWorkItemHandlers().size()); assertEquals(1, fromXml.getRequiredRoles().size()); }
.runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE) .auditPersistenceUnit("org.jbpm.audit"); .runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE);
@Test public void testWriteDeploymentDescriptorXmlWithDuplicateNamedObjects() { DeploymentDescriptor descriptor = new DeploymentDescriptorImpl("org.jbpm.domain"); descriptor.getBuilder() .addWorkItemHandler(new NamedObjectModel("mvel", "Log", "new org.jbpm.process.instance.impl.demo.SystemOutWorkItemHandler()")) .addWorkItemHandler(new NamedObjectModel("mvel", "Log", "new org.jbpm.process.instance.impl.demo.CustomSystemOutWorkItemHandler()")) .addRequiredRole("experts"); String deploymentDescriptorXml = descriptor.toXml(); assertNotNull(deploymentDescriptorXml); logger.info(deploymentDescriptorXml); ByteArrayInputStream stream = new ByteArrayInputStream(deploymentDescriptorXml.getBytes()); DeploymentDescriptor fromXml = DeploymentDescriptorIO.fromXml(stream); assertNotNull(fromXml); assertEquals("org.jbpm.domain", fromXml.getPersistenceUnit()); assertEquals("org.jbpm.domain", fromXml.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, fromXml.getAuditMode()); assertEquals(PersistenceMode.JPA, fromXml.getPersistenceMode()); assertEquals(RuntimeStrategy.SINGLETON, fromXml.getRuntimeStrategy()); assertEquals(0, fromXml.getMarshallingStrategies().size()); assertEquals(0, fromXml.getConfiguration().size()); assertEquals(0, fromXml.getEnvironmentEntries().size()); assertEquals(0, fromXml.getEventListeners().size()); assertEquals(0, fromXml.getGlobals().size()); assertEquals(0, fromXml.getTaskEventListeners().size()); assertEquals(1, fromXml.getWorkItemHandlers().size()); assertEquals(1, fromXml.getRequiredRoles().size()); }
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); } }
.runtimeStrategy(RuntimeStrategy.PER_REQUEST) .addGlobal(new NamedObjectModel("service", "java.util.ArrayList"));
.addTaskEventListener(new ObjectModel("mvel", "new org.kie.not.existing.TaskEventListener()", new Object[0])) .get();
descriptor.getBuilder().runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE);
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); }
.auditMode(AuditMode.JMS); Map<String, String> resources = new HashMap<String, String>(); resources.put("src/main/resources/" + DeploymentDescriptor.META_INF_LOCATION, customDescriptor.toXml());