diff --git a/drools-eclipse/org.jbpm.eclipse/src/main/resources/org/jbpm/eclipse/wizard/project/ProcessMain-advanced.java.template b/drools-eclipse/org.jbpm.eclipse/src/main/resources/org/jbpm/eclipse/wizard/project/ProcessMain-advanced.java.template index 262b08b41..46f723d0f 100644 --- a/drools-eclipse/org.jbpm.eclipse/src/main/resources/org/jbpm/eclipse/wizard/project/ProcessMain-advanced.java.template +++ b/drools-eclipse/org.jbpm.eclipse/src/main/resources/org/jbpm/eclipse/wizard/project/ProcessMain-advanced.java.template @@ -1,11 +1,29 @@ package com.sample; +/* + * Copyright 2017 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.Properties; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; -import org.jbpm.test.JBPMHelper; import org.kie.api.KieBase; import org.kie.api.KieServices; import org.kie.api.runtime.KieContainer; @@ -16,10 +34,12 @@ import org.kie.api.runtime.manager.RuntimeManager; import org.kie.api.runtime.manager.RuntimeManagerFactory; import org.kie.api.task.TaskService; import org.kie.api.task.model.TaskSummary; +import org.kie.test.util.db.PersistenceUtil; public class ProcessMain { public static void main(String[] args) { + KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); KieBase kbase = kContainer.getKieBase("kbase"); @@ -50,8 +70,17 @@ public class ProcessMain { } private static RuntimeManager createRuntimeManager(KieBase kbase) { - JBPMHelper.startH2Server(); - JBPMHelper.setupDataSource(); + Properties properties = new Properties(); + properties.put("driverClassName", "org.h2.Driver"); + properties.put("className", "org.h2.jdbcx.JdbcDataSource"); + properties.put("user", "sa"); + properties.put("password", ""); + properties.put("url", "jdbc:h2:tcp://localhost/~/jbpm-db"); + properties.put("datasourceName", "jdbc/jbpm-ds"); + PersistenceUtil.setupPoolingDataSource(properties); + Map map = new HashMap(); + map.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); + EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa"); RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory.get() .newDefaultBuilder().entityManagerFactory(emf) diff --git a/drools-eclipse/org.jbpm.eclipse/src/main/resources/org/jbpm/eclipse/wizard/project/ProcessMain-simple.java.template b/drools-eclipse/org.jbpm.eclipse/src/main/resources/org/jbpm/eclipse/wizard/project/ProcessMain-simple.java.template index 64228fbe5..5999f2465 100644 --- a/drools-eclipse/org.jbpm.eclipse/src/main/resources/org/jbpm/eclipse/wizard/project/ProcessMain-simple.java.template +++ b/drools-eclipse/org.jbpm.eclipse/src/main/resources/org/jbpm/eclipse/wizard/project/ProcessMain-simple.java.template @@ -1,43 +1,94 @@ -package com.sample; - -import javax.persistence.EntityManagerFactory; -import javax.persistence.Persistence; - -import org.jbpm.test.JBPMHelper; -import org.kie.api.KieBase; -import org.kie.api.KieServices; -import org.kie.api.runtime.KieContainer; -import org.kie.api.runtime.KieSession; -import org.kie.api.runtime.manager.RuntimeEngine; -import org.kie.api.runtime.manager.RuntimeEnvironmentBuilder; -import org.kie.api.runtime.manager.RuntimeManager; -import org.kie.api.runtime.manager.RuntimeManagerFactory; - -public class ProcessMain { - - public static void main(String[] args) { - KieServices ks = KieServices.Factory.get(); - KieContainer kContainer = ks.getKieClasspathContainer(); - KieBase kbase = kContainer.getKieBase("kbase"); - - RuntimeManager manager = createRuntimeManager(kbase); - RuntimeEngine engine = manager.getRuntimeEngine(null); - KieSession ksession = engine.getKieSession(); - ksession.startProcess("com.sample.bpmn.hello"); - - manager.disposeRuntimeEngine(engine); - System.exit(0); - } - - private static RuntimeManager createRuntimeManager(KieBase kbase) { - JBPMHelper.startH2Server(); - JBPMHelper.setupDataSource(); - EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa"); - RuntimeEnvironmentBuilder builder = RuntimeEnvironmentBuilder.Factory.get() - .newDefaultBuilder().entityManagerFactory(emf) - .knowledgeBase(kbase); - return RuntimeManagerFactory.Factory.get() - .newSingletonRuntimeManager(builder.get(), "com.sample:example:1.0"); - } - -} \ No newline at end of file +/* + * Copyright 2017 Red Hat, Inc. and/or its affiliates. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.sample; + +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; + +import org.kie.api.KieBase; +import org.kie.api.io.ResourceType; +import org.kie.api.runtime.manager.RuntimeEnvironmentBuilder; +import org.kie.api.runtime.manager.RuntimeManager; +import org.kie.api.runtime.manager.RuntimeManagerFactory; +import org.kie.internal.builder.KnowledgeBuilder; +import org.kie.internal.builder.KnowledgeBuilderFactory; +import org.kie.internal.io.ResourceFactory; +import org.kie.internal.runtime.StatefulKnowledgeSession; +import org.kie.internal.runtime.conf.AuditMode; +import org.kie.internal.runtime.conf.DeploymentDescriptor; +import org.kie.internal.runtime.manager.context.EmptyContext; +import org.kie.internal.runtime.manager.deploy.DeploymentDescriptorManager; +import org.kie.test.util.db.PersistenceUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * This is a sample file to launch a process. + */ +public class ProcessMain { + + private static final Logger logger = LoggerFactory.getLogger(ProcessMain.class); + private static final boolean usePersistence = true; + + public static final void main(String[] args) throws Exception { + // load up the knowledge base + KieBase kbase = readKnowledgeBase(); + StatefulKnowledgeSession ksession = newStatefulKnowledgeSession(kbase); + // start a new process instance + ksession.startProcess("com.sample.bpmn.hello"); + logger.info("Process started ..."); + } + + private static KieBase readKnowledgeBase() throws Exception { + KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); + kbuilder.add(ResourceFactory.newClassPathResource("com/sample/sample.bpmn"), ResourceType.BPMN2); + return kbuilder.newKieBase(); + } + + public static StatefulKnowledgeSession newStatefulKnowledgeSession(KieBase kbase) { + RuntimeEnvironmentBuilder builder = null; + if ( usePersistence ) { + Properties properties = new Properties(); + properties.put("driverClassName", "org.h2.Driver"); + properties.put("className", "org.h2.jdbcx.JdbcDataSource"); + properties.put("user", "sa"); + properties.put("password", ""); + properties.put("url", "jdbc:h2:tcp://localhost/~/jbpm-db"); + properties.put("datasourceName", "jdbc/jbpm-ds"); + PersistenceUtil.setupPoolingDataSource(properties); + Map map = new HashMap(); + map.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); + EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.jbpm.persistence.jpa"); + builder = RuntimeEnvironmentBuilder.Factory.get() + .newDefaultBuilder() + .entityManagerFactory(emf); + } else { + builder = RuntimeEnvironmentBuilder.Factory.get() + .newDefaultInMemoryBuilder(); + DeploymentDescriptor descriptor = + new DeploymentDescriptorManager().getDefaultDescriptor().getBuilder().auditMode(AuditMode.NONE).get(); + builder.addEnvironmentEntry("KieDeploymentDescriptor", descriptor); + } + builder.knowledgeBase(kbase); + RuntimeManager manager = RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(builder.get()); + return (StatefulKnowledgeSession) manager.getRuntimeEngine(EmptyContext.get()).getKieSession(); + } +}