Refine search
DeploymentDescriptor master = new DeploymentDescriptorImpl("org.jbpm.domain"); master.getBuilder() .addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"})); assertEquals("org.jbpm.domain", master.getPersistenceUnit()); assertEquals("org.jbpm.domain", master.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, master.getAuditMode()); assertEquals(PersistenceMode.JPA, master.getPersistenceMode()); .persistenceUnit(null) .auditPersistenceUnit("") .addMarshalingStrategy(new ObjectModel("org.jbpm.test.CustomStrategy", new Object[]{"param2"}));
@Override public Object getInstance(ObjectModel model, ClassLoader cl, Map<String, Object> contextParams) { Class<?> clazz = getClassObject(model.getIdentifier(), cl); Object instance = null; InternalRuntimeManager manager = null; if (model.getParameters() == null || model.getParameters().isEmpty()) { logger.debug("About to create instance of {} with no arg constructor", model.getIdentifier()); } catch (Exception e) { throw new IllegalArgumentException("Unable to create instance (no arg constructor) of type " + model.getIdentifier() + " due to " + e.getMessage(), e); logger.debug("About to create instance of {} with {} parameters", model.getIdentifier(), model.getParameters().size()); Class<?>[] parameterTypes = new Class<?>[model.getParameters().size()]; Object[] paramInstances = new Object[model.getParameters().size()]; for (Object param : model.getParameters()) { ((ObjectModel) param).getIdentifier()); Class<?> paramclazz = getClassObject(((ObjectModel)param).getIdentifier(), cl); parameterTypes[index] = paramclazz; } catch (Exception e) { throw new IllegalArgumentException("Unable to create instance (" + parameterTypes + " constructor) of type " + model.getIdentifier() + " due to " + e.getMessage(), e);
protected Object getInstanceFromModel(ObjectModel model, ClassLoader classloader, Map<String, Object> contaxtParams) { ObjectModelResolver resolver = ObjectModelResolverProvider.get(model.getResolver()); if (resolver == null) { throw new IllegalStateException("Unable to find ObjectModelResolver for " + model.getResolver()); } return resolver.getInstance(model, classloader, contaxtParams); }
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); }
@Before public void prepare() { KieServices ks = KieServices.Factory.get(); ReleaseId releaseId = ks.newReleaseId(GROUP_ID, ARTIFACT_ID, VERSION); List<String> processes = new ArrayList<String>(); processes.add("repo/processes/support/support.bpmn"); DeploymentDescriptor customDescriptor = new DeploymentDescriptorImpl("org.jbpm.domain"); customDescriptor.getBuilder() .addTaskEventListener(new ObjectModel("org.jbpm.services.cdi.test.ext.DebugTaskLifeCycleEventListener")); Map<String, String> resources = new HashMap<String, String>(); resources.put("src/main/resources/" + DeploymentDescriptor.META_INF_LOCATION, customDescriptor.toXml()); InternalKieModule kJar1 = createKieJar(ks, releaseId, processes, resources); File pom = new File("target/kmodule", "pom.xml"); pom.getParentFile().mkdir(); try { FileOutputStream fs = new FileOutputStream(pom); fs.write(getPom(releaseId).getBytes()); fs.close(); } catch (Exception e) { } KieMavenRepository repository = getKieMavenRepository(); repository.deployArtifact(releaseId, kJar1, pom); }
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(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>()); }
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))); } } }
public void addJPAMarshallingStrategy(DeploymentDescriptor dd, Path path) { KieModule kieModule = moduleService.resolveModule(path); String marshalingValue = null; if (kieModule != null && (marshalingValue = buildJPAMarshallingStrategyValue(kieModule)) != null) { List<ObjectModel> marshallingStrategies = new ArrayList<ObjectModel>(); ObjectModel objectModel = new ObjectModel(); objectModel.setResolver("mvel"); objectModel.setIdentifier(marshalingValue); marshallingStrategies.add(objectModel); ((DeploymentDescriptorImpl) dd).setMarshallingStrategies(marshallingStrategies); } } }
private List<ObjectModel> processToObjectModel(List<ItemObjectModel> data) { List<ObjectModel> result = null; if (data != null) { result = new ArrayList<ObjectModel>(); for (ItemObjectModel item : data) { ObjectModel ms = new ObjectModel(item.getResolver(), item.getValue()); if (item.getParameters() != null) { for (Parameter param : item.getParameters()) { ObjectModel p = new ObjectModel(item.getResolver(), param.getType(), param.getValue().trim()); ms.addParameter(p); } } result.add(ms); } } return result; }
private List<ItemObjectModel> processObjectModel(List<ObjectModel> data) { List<ItemObjectModel> result = null; if (data != null) { result = new ArrayList<ItemObjectModel>(); for (ObjectModel orig : data) { List<Parameter> parameters = collectParameters(orig.getParameters()); result.add(new ItemObjectModel(null, orig.getIdentifier(), orig.getResolver(), parameters)); } } return result; }
String identifier = model.getIdentifier(); newMessage( path, "Identifier cannot be empty for " + model.getIdentifier(), Level.ERROR, I18N_KEY_MISSING_IDENTIFIER, model.getIdentifier())); String resolver = model.getResolver(); if (resolver == null) { validationMessages.add( newMessage( path, "No resolver selected for " + model.getIdentifier(), Level.ERROR, I18N_KEY_MISSING_RESOLVER, model.getIdentifier())); } catch (CompileException e) { StringBuilder text = new StringBuilder(); text.append("Could not compile mvel expression '" + model.getIdentifier() +"'.") .append(" this can be due to invalid syntax of missing classes") .append("-") Level.WARNING, I18N_KEY_NOT_VALID_MVEL_IDENTIFIER, model.getIdentifier(), e.getMessage()));
@Override public Object getInstance(ObjectModel model, ClassLoader cl, Map<String, Object> contextParams) { Object instance = null; InternalRuntimeManager manager = null; if (contextParams.containsKey("runtimeManager")) { manager = (InternalRuntimeManager) contextParams.get("runtimeManager"); instance = manager.getCacheManager().get(model.getIdentifier()); if (instance != null) { return instance; } } ParserConfiguration config = new ParserConfiguration(); config.setClassLoader(cl); ParserContext ctx = new ParserContext(config); if (contextParams != null) { for (Map.Entry<String, Object> entry : contextParams.entrySet()) { ctx.addVariable(entry.getKey(), entry.getValue().getClass()); } } Object compiledExpression = MVEL.compileExpression(model.getIdentifier(), ctx); instance = MVELSafeHelper.getEvaluator().executeExpression( compiledExpression, contextParams ); if (manager != null && instance instanceof Cacheable) { manager.getCacheManager().add(model.getIdentifier(), instance); } return 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); }
DeploymentDescriptor descriptor = new DeploymentDescriptorImpl("org.jbpm.domain"); descriptor = descriptor.getBuilder() .addTaskEventListener(new ObjectModel("mvel", "new org.kie.not.existing.TaskEventListener()", new Object[0])) .get(); content.put("src/main/resources/META-INF/kie-deployment-descriptor.xml", descriptor.toXml()); content.put("src/main/resources/script-process.bpmn2", readFile("/script-process.bpmn2")); KieServerDeployer.createAndDeployKJar(releaseId, content);
@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()); }
private static ObjectModel getObjectModelParameter(String resolver) { return new ObjectModel(resolver, UUID.randomUUID().toString(), Integer.toString(random.nextInt(100000))); }
public void addJPAMarshallingStrategy(DeploymentDescriptor dd, Path path) { KieModule kieModule = moduleService.resolveModule(path); String marshalingValue = null; if (kieModule != null && (marshalingValue = buildJPAMarshallingStrategyValue(kieModule)) != null) { List<ObjectModel> marshallingStrategies = new ArrayList<ObjectModel>(); ObjectModel objectModel = new ObjectModel(); objectModel.setResolver("mvel"); objectModel.setIdentifier(marshalingValue); marshallingStrategies.add(objectModel); ((DeploymentDescriptorImpl) dd).setMarshallingStrategies(marshallingStrategies); } } }
private List<ObjectModel> processToObjectModel(List<ItemObjectModel> data) { List<ObjectModel> result = null; if (data != null) { result = new ArrayList<ObjectModel>(); for (ItemObjectModel item : data) { ObjectModel ms = new ObjectModel(item.getResolver(), item.getValue()); if (item.getParameters() != null) { for (Parameter param : item.getParameters()) { ObjectModel p = new ObjectModel(item.getResolver(), param.getType(), param.getValue().trim()); ms.addParameter(p); } } result.add(ms); } } return result; }
private List<ItemObjectModel> processObjectModel(List<ObjectModel> data) { List<ItemObjectModel> result = null; if (data != null) { result = new ArrayList<ItemObjectModel>(); for (ObjectModel orig : data) { List<Parameter> parameters = collectParameters(orig.getParameters()); result.add(new ItemObjectModel(null, orig.getIdentifier(), orig.getResolver(), parameters)); } } return result; }