@SuppressWarnings("unchecked") protected <T> List<T> getEventListenerFromDescriptor(RuntimeEngine runtime, Class<T> type) { List<T> listeners = new ArrayList<T>(); DeploymentDescriptor descriptor = getRuntimeManager().getDeploymentDescriptor(); if (descriptor != null) { Map<String, Object> params = getParametersMap(runtime); for (ObjectModel model : descriptor.getEventListeners()) { Object listenerInstance = getInstanceFromModel(model, getRuntimeManager().getEnvironment().getClassLoader(), params); if (listenerInstance != null && type.isAssignableFrom(listenerInstance.getClass())) { listeners.add((T) listenerInstance); } else { // close/cleanup instance as it is not going to be used at the moment, except these that are cacheable if (listenerInstance instanceof Closeable && !(listenerInstance instanceof Cacheable)) { ((Closeable) listenerInstance).close(); } } } } return listeners; }
@Test public void testDefaultDeploymentDescriptorFromClasspath() { System.setProperty("org.kie.deployment.desc.location", "classpath:/deployment/deployment-descriptor-defaults-and-ms.xml"); DeploymentDescriptorManager manager = new DeploymentDescriptorManager("org.jbpm.domain"); DeploymentDescriptor descriptor = manager.getDefaultDescriptor(); assertNotNull(descriptor); assertEquals("org.jbpm.domain", descriptor.getPersistenceUnit()); assertEquals("org.jbpm.domain", descriptor.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, descriptor.getAuditMode()); assertEquals(PersistenceMode.JPA, descriptor.getPersistenceMode()); assertEquals(RuntimeStrategy.SINGLETON, descriptor.getRuntimeStrategy()); assertEquals(1, descriptor.getMarshallingStrategies().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getWorkItemHandlers().size()); }
@Test public void testDefaultDeploymentDescriptorFromFile() { System.setProperty("org.kie.deployment.desc.location", "file:src/test/resources/deployment/deployment-descriptor-defaults-and-ms.xml"); DeploymentDescriptorManager manager = new DeploymentDescriptorManager("org.jbpm.domain"); DeploymentDescriptor descriptor = manager.getDefaultDescriptor(); assertNotNull(descriptor); assertEquals("org.jbpm.domain", descriptor.getPersistenceUnit()); assertEquals("org.jbpm.domain", descriptor.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, descriptor.getAuditMode()); assertEquals(PersistenceMode.JPA, descriptor.getPersistenceMode()); assertEquals(RuntimeStrategy.SINGLETON, descriptor.getRuntimeStrategy()); assertEquals(1, descriptor.getMarshallingStrategies().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getWorkItemHandlers().size()); }
@Test public void testDefaultDeploymentDescriptor() { DeploymentDescriptorManager manager = new DeploymentDescriptorManager("org.jbpm.domain"); DeploymentDescriptor descriptor = manager.getDefaultDescriptor(); assertNotNull(descriptor); assertEquals("org.jbpm.domain", descriptor.getPersistenceUnit()); assertEquals("org.jbpm.domain", descriptor.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, descriptor.getAuditMode()); assertEquals(PersistenceMode.JPA, descriptor.getPersistenceMode()); assertEquals(RuntimeStrategy.SINGLETON, descriptor.getRuntimeStrategy()); assertEquals(0, descriptor.getMarshallingStrategies().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getWorkItemHandlers().size()); }
@Test public void testDeploymentDescriptorFromKieContainerNoDescInKjar() { DeploymentDescriptorManager manager = new DeploymentDescriptorManager("org.jbpm.domain"); KieServices ks = KieServices.Factory.get(); ReleaseId releaseId = ks.newReleaseId(GROUP_ID, ARTIFACT_ID, VERSION); Map<String, String> resources = new HashMap<String, String>(); resources.put("src/main/resources/simple.drl", SIMPLE_DRL); InternalKieModule kJar1 = createKieJar(ks, releaseId, resources); installKjar(releaseId, kJar1); KieContainer kieContainer = ks.newKieContainer(releaseId); assertNotNull(kieContainer); List<DeploymentDescriptor> descriptorHierarchy = DeploymentDescriptorManagerUtil.getDeploymentDescriptorHierarchy(manager, kieContainer); assertNotNull(descriptorHierarchy); assertEquals(1, descriptorHierarchy.size()); DeploymentDescriptor descriptor = descriptorHierarchy.get(0); assertNotNull(descriptor); assertEquals("org.jbpm.domain", descriptor.getPersistenceUnit()); assertEquals("org.jbpm.domain", descriptor.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, descriptor.getAuditMode()); assertEquals(PersistenceMode.JPA, descriptor.getPersistenceMode()); assertEquals(RuntimeStrategy.SINGLETON, descriptor.getRuntimeStrategy()); assertEquals(0, descriptor.getMarshallingStrategies().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getWorkItemHandlers().size()); }
assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size());
assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size());
assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(1, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, outcome.getConfiguration().size()); assertEquals(0, outcome.getEnvironmentEntries().size()); assertEquals(0, outcome.getEventListeners().size()); assertEquals(1, outcome.getGlobals().size()); assertEquals(0, outcome.getTaskEventListeners().size());
assertEquals(0, master.getConfiguration().size()); assertEquals(0, master.getEnvironmentEntries().size()); assertEquals(0, master.getEventListeners().size()); assertEquals(0, master.getGlobals().size()); assertEquals(0, master.getTaskEventListeners().size()); assertEquals(0, slave.getConfiguration().size()); assertEquals(0, slave.getEnvironmentEntries().size()); assertEquals(0, slave.getEventListeners().size()); assertEquals(0, slave.getGlobals().size()); assertEquals(0, slave.getTaskEventListeners().size()); assertEquals(0, outcome.getConfiguration().size()); assertEquals(0, outcome.getEnvironmentEntries().size()); assertEquals(0, outcome.getEventListeners().size()); assertEquals(0, outcome.getGlobals().size()); assertEquals(0, outcome.getTaskEventListeners().size());
assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(1, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size());
assertEquals(0, master.getConfiguration().size()); assertEquals(0, master.getEnvironmentEntries().size()); assertEquals(0, master.getEventListeners().size()); assertEquals(0, master.getGlobals().size()); assertEquals(0, master.getTaskEventListeners().size()); assertEquals(0, slave.getConfiguration().size()); assertEquals(0, slave.getEnvironmentEntries().size()); assertEquals(0, slave.getEventListeners().size()); assertEquals(0, slave.getGlobals().size()); assertEquals(0, slave.getTaskEventListeners().size()); assertEquals(0, outcome.getConfiguration().size()); assertEquals(0, outcome.getEnvironmentEntries().size()); assertEquals(0, outcome.getEventListeners().size()); assertEquals(0, outcome.getGlobals().size()); assertEquals(0, outcome.getTaskEventListeners().size());
assertEquals(0, master.getConfiguration().size()); assertEquals(0, master.getEnvironmentEntries().size()); assertEquals(0, master.getEventListeners().size()); assertEquals(0, master.getGlobals().size()); assertEquals(0, master.getTaskEventListeners().size()); assertEquals(0, slave.getConfiguration().size()); assertEquals(0, slave.getEnvironmentEntries().size()); assertEquals(0, slave.getEventListeners().size()); assertEquals(0, slave.getGlobals().size()); assertEquals(0, slave.getTaskEventListeners().size()); assertEquals(0, slave2.getConfiguration().size()); assertEquals(1, slave2.getEnvironmentEntries().size()); assertEquals(0, slave2.getEventListeners().size()); assertEquals(0, slave2.getGlobals().size()); assertEquals(0, slave2.getTaskEventListeners().size()); assertEquals(0, outcome.getConfiguration().size()); assertEquals(1, outcome.getEnvironmentEntries().size()); assertEquals(0, outcome.getEventListeners().size()); assertEquals(0, outcome.getGlobals().size()); assertEquals(0, outcome.getTaskEventListeners().size());
assertEquals(0, master.getConfiguration().size()); assertEquals(0, master.getEnvironmentEntries().size()); assertEquals(0, master.getEventListeners().size()); assertEquals(0, master.getGlobals().size()); assertEquals(0, master.getTaskEventListeners().size()); assertEquals(0, slave.getConfiguration().size()); assertEquals(0, slave.getEnvironmentEntries().size()); assertEquals(0, slave.getEventListeners().size()); assertEquals(0, slave.getGlobals().size()); assertEquals(0, slave.getTaskEventListeners().size()); assertEquals(0, outcome.getConfiguration().size()); assertEquals(0, outcome.getEnvironmentEntries().size()); assertEquals(0, outcome.getEventListeners().size()); assertEquals(0, outcome.getGlobals().size()); assertEquals(0, outcome.getTaskEventListeners().size());
assertEquals(0, master.getConfiguration().size()); assertEquals(0, master.getEnvironmentEntries().size()); assertEquals(0, master.getEventListeners().size()); assertEquals(0, master.getGlobals().size()); assertEquals(0, master.getTaskEventListeners().size()); assertEquals(0, slave.getConfiguration().size()); assertEquals(0, slave.getEnvironmentEntries().size()); assertEquals(0, slave.getEventListeners().size()); assertEquals(0, slave.getGlobals().size()); assertEquals(0, slave.getTaskEventListeners().size()); assertEquals(0, outcome.getConfiguration().size()); assertEquals(0, outcome.getEnvironmentEntries().size()); assertEquals(0, outcome.getEventListeners().size()); assertEquals(0, outcome.getGlobals().size()); assertEquals(0, outcome.getTaskEventListeners().size());
assertEquals(0, master.getConfiguration().size()); assertEquals(0, master.getEnvironmentEntries().size()); assertEquals(0, master.getEventListeners().size()); assertEquals(0, master.getGlobals().size()); assertEquals(0, master.getTaskEventListeners().size()); assertEquals(0, slave.getConfiguration().size()); assertEquals(0, slave.getEnvironmentEntries().size()); assertEquals(0, slave.getEventListeners().size()); assertEquals(0, slave.getGlobals().size()); assertEquals(0, slave.getTaskEventListeners().size()); assertEquals(0, outcome.getConfiguration().size()); assertEquals(0, outcome.getEnvironmentEntries().size()); assertEquals(0, outcome.getEventListeners().size()); assertEquals(0, outcome.getGlobals().size()); assertEquals(0, outcome.getTaskEventListeners().size());
assertEquals(0, master.getConfiguration().size()); assertEquals(0, master.getEnvironmentEntries().size()); assertEquals(0, master.getEventListeners().size()); assertEquals(0, master.getGlobals().size()); assertEquals(0, master.getTaskEventListeners().size()); assertEquals(0, slave.getConfiguration().size()); assertEquals(0, slave.getEnvironmentEntries().size()); assertEquals(0, slave.getEventListeners().size()); assertEquals(0, slave.getGlobals().size()); assertEquals(0, slave.getTaskEventListeners().size()); assertEquals(0, outcome.getConfiguration().size()); assertEquals(0, outcome.getEnvironmentEntries().size()); assertEquals(0, outcome.getEventListeners().size()); assertEquals(0, outcome.getGlobals().size()); assertEquals(0, outcome.getTaskEventListeners().size());
assertEquals(1, descriptor.getEventListeners().size()); assertEquals(1, descriptor.getGlobals().size()); assertEquals(1, descriptor.getTaskEventListeners().size());
builder.setConfiguration(slave.getConfiguration()); builder.setEnvironmentEntries(slave.getEnvironmentEntries()); builder.setEventListeners(slave.getEventListeners()); builder.setGlobals(slave.getGlobals()); builder.setMarshalingStrategies(slave.getMarshallingStrategies()); builder.runtimeStrategy(slave.getRuntimeStrategy()); for (ObjectModel model : slave.getEventListeners()) { builder.addEventListener(model);
@Test public void testReadPartialDeploymentDescriptorFromXml() throws Exception { InputStream input = this.getClass().getResourceAsStream("/deployment/partial-deployment-descriptor.xml"); DeploymentDescriptor descriptor = DeploymentDescriptorIO.fromXml(input); assertNotNull(descriptor); assertEquals("org.jbpm.domain", descriptor.getPersistenceUnit()); assertEquals("org.jbpm.domain", descriptor.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, descriptor.getAuditMode()); assertEquals(PersistenceMode.JPA, descriptor.getPersistenceMode()); assertEquals(RuntimeStrategy.PER_PROCESS_INSTANCE, descriptor.getRuntimeStrategy()); assertEquals(0, descriptor.getMarshallingStrategies().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getWorkItemHandlers().size()); assertEquals(0, descriptor.getRequiredRoles().size()); }
@Test public void testReadDeploymentDescriptorFromXml() throws Exception { InputStream input = this.getClass().getResourceAsStream("/deployment/deployment-descriptor-defaults.xml"); DeploymentDescriptor descriptor = DeploymentDescriptorIO.fromXml(input); assertNotNull(descriptor); assertEquals("org.jbpm.domain", descriptor.getPersistenceUnit()); assertEquals("org.jbpm.domain", descriptor.getAuditPersistenceUnit()); assertEquals(AuditMode.JPA, descriptor.getAuditMode()); assertEquals(PersistenceMode.JPA, descriptor.getPersistenceMode()); assertEquals(RuntimeStrategy.SINGLETON, descriptor.getRuntimeStrategy()); assertEquals(0, descriptor.getMarshallingStrategies().size()); assertEquals(0, descriptor.getConfiguration().size()); assertEquals(0, descriptor.getEnvironmentEntries().size()); assertEquals(0, descriptor.getEventListeners().size()); assertEquals(0, descriptor.getGlobals().size()); assertEquals(0, descriptor.getTaskEventListeners().size()); assertEquals(0, descriptor.getWorkItemHandlers().size()); assertEquals(0, descriptor.getRequiredRoles().size()); }