From 76da6008dec491652f15f1148a4a68f30659b27b Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Mon, 21 Apr 2014 17:06:56 +0200 Subject: wip --- .../io/trygvis/calamus/engine/CalamusJbpm.java | 4 ++-- .../trygvis/calamus/engine/CalamusJbpmConfig.java | 27 +++++++++++++++++----- .../main/resources/db/public/V001_001__data.sql | 12 ++++++++++ 3 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 calamus-engine/src/main/resources/db/public/V001_001__data.sql diff --git a/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java b/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java index af6f489..fd86b6e 100644 --- a/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java +++ b/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpm.java @@ -58,8 +58,8 @@ public class CalamusJbpm { // session.addEventListener(AuditLoggerFactory.newJPAInstance(env)); // session.getWorkItemManager().registerWorkItemHandler("Service Task", new ServiceTaskHandler()); -// session.getWorkItemManager().registerWorkItemHandler("Upgrade App", new UpgradeAppWorkItemHandler()); -// session.getWorkItemManager().registerWorkItemHandler("Restart App", new RestartAppWorkItemHandler()); + session.getWorkItemManager().registerWorkItemHandler("Upgrade App", new UpgradeAppWorkItemHandler()); + session.getWorkItemManager().registerWorkItemHandler("Restart App", new RestartAppWorkItemHandler()); } public TransactionTemplate getTransactionTemplate() { diff --git a/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java b/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java index edfda28..3aaad13 100644 --- a/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java +++ b/calamus-engine/src/main/java/io/trygvis/calamus/engine/CalamusJbpmConfig.java @@ -1,8 +1,13 @@ package io.trygvis.calamus.engine; +import org.drools.core.marshalling.impl.ClassObjectMarshallingStrategyAcceptor; +import org.drools.core.marshalling.impl.SerializablePlaceholderResolverStrategy; +import org.drools.persistence.jpa.marshaller.JPAPlaceholderResolverStrategy; import org.jbpm.process.audit.JPAAuditLogService; import org.kie.api.io.Resource; import org.kie.api.io.ResourceType; +import org.kie.api.marshalling.ObjectMarshallingStrategy; +import org.kie.api.runtime.EnvironmentName; import org.kie.api.runtime.manager.RuntimeEnvironment; import org.kie.api.runtime.manager.RuntimeManager; import org.kie.internal.io.ResourceFactory; @@ -31,16 +36,15 @@ public class CalamusJbpmConfig { @Bean @Lazy public RuntimeEnvironmentFactoryBean runtimeEnvironment(DataSource dataSource, CalamusDbConfig.DbMigrations dbMigrations, EntityManagerFactory entityManagerFactory, PlatformTransactionManager platformTransactionManager) { - System.out.println("CalamusConfig.runtimeEnvironmentFactoryBean"); - System.out.println("dataSource = " + dataSource); - System.out.println("dbMigrations = " + dbMigrations); - System.out.println("entityManagerFactory = " + entityManagerFactory); - System.out.println("platformTransactionManager = " + platformTransactionManager); +// System.out.println("CalamusConfig.runtimeEnvironmentFactoryBean"); +// System.out.println("dataSource = " + dataSource); +// System.out.println("dbMigrations = " + dbMigrations); +// System.out.println("entityManagerFactory = " + entityManagerFactory); +// System.out.println("platformTransactionManager = " + platformTransactionManager); RuntimeEnvironmentFactoryBean x = new RuntimeEnvironmentFactoryBean(); x.setType("DEFAULT"); Map assets = new HashMap<>(); - System.out.println("getClass().getClassLoader() = " + getClass().getClassLoader()); assets.put(ResourceFactory.newClassPathResource("Deploy.bpmn2", getClass()), ResourceType.BPMN2); x.setAssets(assets); // x.setClassLoader(getClass().getClassLoader()); @@ -48,6 +52,17 @@ public class CalamusJbpmConfig { x.setEntityManagerFactory(entityManagerFactory); x.setTransactionManager(platformTransactionManager); + ObjectMarshallingStrategy[] objectMarshallingStrategies = { + // set the entity manager factory for jpa strategy so it + // know how to store and read entities + new JPAPlaceholderResolverStrategy(entityManagerFactory), + // set the serialization based strategy as last one to + // deal with non entities classes + new SerializablePlaceholderResolverStrategy(ClassObjectMarshallingStrategyAcceptor.DEFAULT) + }; + x.setEnvironmentEntries(new HashMap<>()); + x.getEnvironmentEntries().put(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES, objectMarshallingStrategies); + return x; } diff --git a/calamus-engine/src/main/resources/db/public/V001_001__data.sql b/calamus-engine/src/main/resources/db/public/V001_001__data.sql new file mode 100644 index 0000000..2a53212 --- /dev/null +++ b/calamus-engine/src/main/resources/db/public/V001_001__data.sql @@ -0,0 +1,12 @@ +INSERT INTO process (id, name, jbpm_process_id) +VALUES ((SELECT + nextval('calamus_seq')), 'Deploy', 'io.trygvis.calamus.Deploy'); + +INSERT INTO process_trigger (id, process, mvel) +VALUES ((SELECT + nextval('calamus_seq')), + (SELECT + id + FROM process + WHERE jbpm_process_id = 'io.trygvis.calamus.Deploy'), + 'artifact.groupId == "demo"'); -- cgit v1.2.3