use of org.kie.internal.runtime.conf.DeploymentDescriptor in project jbpm by kiegroup.
the class RuntimeDataServiceImplSecurityTest method prepare.
@Before
public void prepare() {
configureServices();
logger.debug("Preparing kjar");
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId(GROUP_ID, ARTIFACT_ID, VERSION);
List<String> processes = new ArrayList<String>();
processes.add("repo/processes/general/EmptyHumanTask.bpmn");
processes.add("repo/processes/general/humanTask.bpmn");
processes.add("repo/processes/general/BPMN2-UserTask.bpmn2");
processes.add("repo/processes/general/timer-process.bpmn2");
DeploymentDescriptor customDescriptor = new DeploymentDescriptorImpl("org.jbpm.domain");
customDescriptor.getBuilder().addEventListener(new ObjectModel("mvel", "org.jbpm.kie.test.util.CountDownListenerFactory.get(\"securityTest\", \"timer\", 1)")).addRequiredRole("view:managers").addRequiredRole("execute:employees");
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);
assertNotNull(deploymentService);
deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);
deploymentService.deploy(deploymentUnit);
units.add(deploymentUnit);
assertNotNull(processService);
identityProvider.setRoles(Arrays.asList("employees"));
}
use of org.kie.internal.runtime.conf.DeploymentDescriptor in project jbpm by kiegroup.
the class FilteredKModuleDeploymentServiceTest method testSerializationClassesLimitedInDeploymentDescriptor.
@Test
public void testSerializationClassesLimitedInDeploymentDescriptor() {
String groupId = "org.test";
String artifactId = "jbpm-kie-services-filter-test-desc";
String version = VERSION;
FluentKieModuleDeploymentHelper.newFluentInstance().setGroupId(groupId).setArtifactId(artifactId).setVersion(version).createKieJarAndDeployToMaven();
configureServices();
KModuleDeploymentUnit deploymentUnit = new KModuleDeploymentUnit(groupId, artifactId, version);
DeploymentDescriptor depDesc = new DeploymentDescriptorImpl().getBuilder().setLimitSerializationClasses(true).addClass(// interface, no annotations!
Building.class.getName()).addClass(// @XmlRootElement
House.class.getName()).addClass(// @XmlRootElement
Person.class.getName()).addClass(// inherits from Person
OtherPerson.class.getName()).addClass(// @Remotable
Thing.class.getName()).get();
deploymentUnit.setDeploymentDescriptor(depDesc);
deploymentService.deploy(deploymentUnit);
units.add(deploymentUnit);
verifyDeployedUnitContainsCorrectClasses(deploymentUnit);
}
use of org.kie.internal.runtime.conf.DeploymentDescriptor in project jbpm by kiegroup.
the class FilteredKModuleDeploymentServiceTest method testMultipleRemotableInPojoJar.
@Test
public void testMultipleRemotableInPojoJar() {
String groupId = "org.test";
String pojoArtifactId = "jbpm-kie-services-filter-test-pojo";
String projectArtifactId = "jbpm-kie-services-filter-test-project";
String version = VERSION;
KieServices ks = KieServices.Factory.get();
ReleaseId pojoReleaseId = ks.newReleaseId(groupId, pojoArtifactId, VERSION);
// contains two @Remotable classes MyPojo, MyPojo2
File pojojar = new File("src/test/resources/multi-remotable/pojo.jar");
File pojopom = new File(this.getClass().getResource("/multi-remotable/pojo-pom.xml").getFile());
KieMavenRepository.getKieMavenRepository().installArtifact(pojoReleaseId, pojojar, pojopom);
FluentKieModuleDeploymentHelper.newFluentInstance().setGroupId(groupId).setArtifactId(projectArtifactId).setVersion(version).addDependencies(groupId + ":" + pojoArtifactId + ":" + version).createKieJarAndDeployToMaven();
configureServices();
KModuleDeploymentUnit deploymentUnit = new KModuleDeploymentUnit(groupId, projectArtifactId, version);
DeploymentDescriptor depDesc = new DeploymentDescriptorImpl().getBuilder().setLimitSerializationClasses(true).get();
deploymentUnit.setDeploymentDescriptor(depDesc);
deploymentService.deploy(deploymentUnit);
DeployedUnit deployedUnit = deploymentService.getDeployedUnit(deploymentUnit.getIdentifier());
Collection<Class<?>> deployedClasses = deployedUnit.getDeployedClasses();
ClassLoader classLoader = deploymentUnit.getKieContainer().getClassLoader();
try {
assertTrue("MyPojo is not added", deployedClasses.contains(classLoader.loadClass("com.sample.MyPojo")));
assertTrue("MyPojo2 is not added", deployedClasses.contains(classLoader.loadClass("com.sample.MyPojo2")));
} catch (ClassNotFoundException e) {
fail(e.getMessage());
}
}
use of org.kie.internal.runtime.conf.DeploymentDescriptor in project jbpm by kiegroup.
the class IdentityProviderAwareProcessListenerTest method init.
@Before
public void init() {
configureServices();
final KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId(GROUP_ID, ARTIFACT_ID, VERSION);
final List<String> processes = Collections.singletonList("repo/processes/general/humanTask.bpmn");
final InternalKieModule kJar1 = createKieJar(ks, releaseId, processes);
final File pom = new File("target/kmodule", "pom.xml");
pom.getParentFile().mkdir();
try (FileOutputStream fs = new FileOutputStream(pom)) {
fs.write(getPom(releaseId).getBytes());
} catch (Exception e) {
e.printStackTrace();
}
getKieMavenRepository().deployArtifact(releaseId, kJar1, pom);
deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, ARTIFACT_ID, VERSION);
final DeploymentDescriptor descriptor = new DeploymentDescriptorImpl();
descriptor.getBuilder().addEventListener(new NamedObjectModel("mvel", "processIdentity", "new org.jbpm.kie.services.impl.IdentityProviderAwareProcessListener(ksession)"));
deploymentUnit.setDeploymentDescriptor(descriptor);
deploymentService.deploy(deploymentUnit);
final DeployedUnit deployed = deploymentService.getDeployedUnit(deploymentUnit.getIdentifier());
assertNotNull(deployed);
assertNotNull(deployed.getDeploymentUnit());
assertNotNull(runtimeDataService);
Collection<ProcessDefinition> processDefinitions = runtimeDataService.getProcesses(new QueryContext());
assertNotNull(processDefinitions);
assertEquals(1, processDefinitions.size());
}
use of org.kie.internal.runtime.conf.DeploymentDescriptor in project jbpm by kiegroup.
the class KModuleDeploymentServiceTest method testDeploymentOfProcessWithDescriptorKieConteinerInjection.
@Test
public void testDeploymentOfProcessWithDescriptorKieConteinerInjection() {
assertNotNull(deploymentService);
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId(GROUP_ID, "kjar-with-dd", VERSION);
List<String> processes = new ArrayList<String>();
processes.add("repo/processes/general/customtask.bpmn");
processes.add("repo/processes/general/humanTask.bpmn");
processes.add("repo/processes/general/import.bpmn");
DeploymentDescriptor customDescriptor = new DeploymentDescriptorImpl("org.jbpm.domain");
customDescriptor.getBuilder().runtimeStrategy(RuntimeStrategy.PER_REQUEST).addWorkItemHandler(new NamedObjectModel("mvel", "Log", "new org.jbpm.kie.services.test.objects.KieConteinerSystemOutWorkItemHandler(kieContainer)"));
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);
DeploymentUnit deploymentUnit = new KModuleDeploymentUnit(GROUP_ID, "kjar-with-dd", VERSION, "KBase-test", "ksession-test2");
deploymentService.deploy(deploymentUnit);
units.add(deploymentUnit);
DeployedUnit deployedGeneral = deploymentService.getDeployedUnit(deploymentUnit.getIdentifier());
assertNotNull(deployedGeneral);
assertNotNull(deployedGeneral.getDeploymentUnit());
assertNotNull(deployedGeneral.getRuntimeManager());
DeploymentDescriptor descriptor = ((InternalRuntimeManager) deployedGeneral.getRuntimeManager()).getDeploymentDescriptor();
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_REQUEST, 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(1, descriptor.getWorkItemHandlers().size());
assertEquals(0, descriptor.getRequiredRoles().size());
RuntimeManager manager = deploymentService.getRuntimeManager(deploymentUnit.getIdentifier());
assertNotNull(manager);
RuntimeEngine engine = manager.getRuntimeEngine(EmptyContext.get());
assertNotNull(engine);
Map<String, Object> params = new HashMap<String, Object>();
ProcessInstance processInstance = engine.getKieSession().startProcess("customtask", params);
assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
manager.disposeRuntimeEngine(engine);
checkFormsDeployment(deploymentUnit.getIdentifier());
}
Aggregations