private static ObjectModel getObjectModelParameter(String resolver, boolean named) { if (named) { return new NamedObjectModel(resolver, UUID.randomUUID().toString(), Integer.toString(random.nextInt(100000))); } else { return new ObjectModel(resolver, UUID.randomUUID().toString(), Integer.toString(random.nextInt(100000))); } } }
@Test(expected=IllegalArgumentException.class) public void testSimpleNotExistingObjectModel() { ObjectModel model = new ObjectModel("org.jbpm.runtime.manager.impl.deploy.testobject.NotExistingObject"); ObjectModelResolver resolver = new ReflectionObjectModelResolver(); resolver.getInstance(model, this.getClass().getClassLoader(), new HashMap<String, Object>()); }
@Test public void testSimpleNestedObjectArgObjectModel() { ObjectModel model = new ObjectModel("org.jbpm.runtime.manager.impl.deploy.testobject.ThirdLevelCustomObject", new Object[]{ new ObjectModel("org.jbpm.runtime.manager.impl.deploy.testobject.EmbedingCustomObject", new Object[]{ new ObjectModel("org.jbpm.runtime.manager.impl.deploy.testobject.SimpleCustomObject", new Object[]{"john"}), "testing object model"})}); ObjectModelResolver resolver = new ReflectionObjectModelResolver(); Object result = resolver.getInstance(model, this.getClass().getClassLoader(), new HashMap<String, Object>()); assertNotNull(result); assertTrue(result instanceof ThirdLevelCustomObject); assertEquals("testing object model", ((ThirdLevelCustomObject) result).getEmbeddedObject().getDescription()); SimpleCustomObject customObject = ((ThirdLevelCustomObject) result).getEmbeddedObject().getCustomObject(); assertNotNull(customObject); assertEquals("john", customObject.getName()); }
@Test public void testSimpleStaticObjectModel() { ObjectModel model = new ObjectModel("Integer.parseInt(\"10\")"); ObjectModelResolver resolver = new MVELObjectModelResolver(); Object result = resolver.getInstance(model, this.getClass().getClassLoader(), new HashMap<String, Object>()); assertNotNull(result); assertTrue(result instanceof Integer); assertEquals(10, ((Integer) result).intValue()); }
@Test public void testComplexStaticObjectModel() { ObjectModel model = new ObjectModel("String.valueOf(10).substring(1)"); ObjectModelResolver resolver = new MVELObjectModelResolver(); Object result = resolver.getInstance(model, this.getClass().getClassLoader(), new HashMap<String, Object>()); assertNotNull(result); assertTrue(result instanceof String); assertEquals("0", ((String) result)); } }
@Test public void testSimpleContextValueObjectModel() { ObjectModel model = new ObjectModel("org.jbpm.runtime.manager.impl.deploy.testobject.SimpleCustomObject", new Object[]{"context"}); ObjectModelResolver resolver = new ReflectionObjectModelResolver(); Map<String, Object> contextParam = new HashMap<String, Object>(); contextParam.put("context", "value from the context"); Object result = resolver.getInstance(model, this.getClass().getClassLoader(), contextParam); assertNotNull(result); assertTrue(result instanceof SimpleCustomObject); assertEquals("value from the context", ((SimpleCustomObject) result).getName()); }
@Test public void testSimpleSingleObjectArgObjectModel() { ObjectModel model = new ObjectModel("org.jbpm.runtime.manager.impl.deploy.testobject.EmbedingCustomObject", new Object[]{ new ObjectModel("org.jbpm.runtime.manager.impl.deploy.testobject.SimpleCustomObject", new Object[]{"john"}), "testing object model"}); ObjectModelResolver resolver = new ReflectionObjectModelResolver(); Object result = resolver.getInstance(model, this.getClass().getClassLoader(), new HashMap<String, Object>()); assertNotNull(result); assertTrue(result instanceof EmbedingCustomObject); assertEquals("testing object model", ((EmbedingCustomObject) result).getDescription()); SimpleCustomObject customObject = ((EmbedingCustomObject) result).getCustomObject(); assertNotNull(customObject); assertEquals("john", customObject.getName()); }
@Test public void testSimpleNoArgObjectModel() { ObjectModel model = new ObjectModel("new org.jbpm.runtime.manager.impl.deploy.testobject.SimpleCustomObject()"); ObjectModelResolver resolver = new MVELObjectModelResolver(); Object result = resolver.getInstance(model, this.getClass().getClassLoader(), new HashMap<String, Object>()); assertNotNull(result); assertTrue(result instanceof SimpleCustomObject); assertEquals("default", ((SimpleCustomObject) result).getName()); }
@Test public void testSimpleSingleStringArgObjectModel() { ObjectModel model = new ObjectModel("org.jbpm.runtime.manager.impl.deploy.testobject.SimpleCustomObject", new Object[]{"john"}); ObjectModelResolver resolver = new ReflectionObjectModelResolver(); Object result = resolver.getInstance(model, this.getClass().getClassLoader(), new HashMap<String, Object>()); assertNotNull(result); assertTrue(result instanceof SimpleCustomObject); assertEquals("john", ((SimpleCustomObject) result).getName()); }
@Test public void testSimpleNoArgObjectModel() { ObjectModel model = new ObjectModel("org.jbpm.runtime.manager.impl.deploy.testobject.SimpleCustomObject"); ObjectModelResolver resolver = new ReflectionObjectModelResolver(); Object result = resolver.getInstance(model, this.getClass().getClassLoader(), new HashMap<String, Object>()); assertNotNull(result); assertTrue(result instanceof SimpleCustomObject); assertEquals("default", ((SimpleCustomObject) result).getName()); }
customDescriptor.getBuilder() .runtimeStrategy(RuntimeStrategy.PER_PROCESS_INSTANCE) .addMarshalingStrategy(new ObjectModel("org.jbpm.runtime.manager.impl.deploy" + ".RuntimeManagerWithDescriptorTest$TestMarshallingStrategy")) .addConfiguration(new NamedObjectModel("drools.processSignalManagerFactory", "java.lang.String", .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" +
.addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"})); .persistenceUnit(null) .auditPersistenceUnit("") .addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"}));
.addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"})) .setLimitSerializationClasses(true); .persistenceUnit(null) .auditPersistenceUnit("") .addMarshalingStrategy(new ObjectModel("org.jbpm.test.AnotherCustomStrategy", new Object[]{"param2"})) .setLimitSerializationClasses(false);
.addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"}));
.addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"})) .setLimitSerializationClasses(true);
.addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"})) .setLimitSerializationClasses(true);
.addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"})) .setLimitSerializationClasses(true);
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; }
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); }
@Test public void testJaxbDeploymentDescriptorSerialization() throws Exception { DeploymentDescriptor descriptor = new DeploymentDescriptorImpl(); descriptor.getBuilder() .addTaskEventListener(new ObjectModel("org.jbpm.task.Listener", new Object[]{"test", "another"})); String output = convertJaxbObjectToString(descriptor); logger.debug(output); assertNotNull(output); }