diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2f7896d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+target/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..196afdd
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,36 @@
+
+ 4.0.0
+ org.flowable
+ flowable-cockroachdb-demo
+ 0.0.1-SNAPSHOT
+
+
+ 1.8
+ 1.8
+
+
+
+
+ org.flowable
+ flowable-engine
+ 6.0.0.RC1-SNAPSHOT
+
+
+ org.postgresql
+ postgresql
+ 9.4.1211.jre7
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.6
+
+
+ org.slf4j
+ slf4j-log4j12
+ 1.7.6
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/flowable/Demo.java b/src/main/java/org/flowable/Demo.java
new file mode 100644
index 0000000..489363c
--- /dev/null
+++ b/src/main/java/org/flowable/Demo.java
@@ -0,0 +1,63 @@
+package org.flowable;
+
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.Random;
+
+import org.activiti.engine.HistoryService;
+import org.activiti.engine.ProcessEngine;
+import org.activiti.engine.ProcessEngineConfiguration;
+import org.activiti.engine.RepositoryService;
+import org.activiti.engine.RuntimeService;
+import org.activiti.engine.TaskService;
+import org.activiti.engine.task.Task;
+
+/**
+ * @author Joram Barrez
+ */
+public class Demo {
+
+ public static void main(String[] args) {
+
+ ProcessEngine processEngine = ProcessEngineConfiguration
+ .createProcessEngineConfigurationFromResource("flowable.cfg.xml").buildProcessEngine();
+
+ RepositoryService repositoryService = processEngine.getRepositoryService();
+ RuntimeService runtimeService = processEngine.getRuntimeService();
+ TaskService taskService = processEngine.getTaskService();
+ HistoryService historyService = processEngine.getHistoryService();
+
+ repositoryService.createDeployment().addClasspathResource("demo-process.bpmn").deploy();
+ System.out.println("Process definitions deployed = " + repositoryService.createProcessDefinitionQuery().count());
+
+ Random random = new Random();
+ for (int i=0; i<100; i++) {
+ Map vars = new HashMap<>();
+ vars.put("var", random.nextInt(100));
+ runtimeService.startProcessInstanceByKey("myProcess", vars);
+ }
+
+ System.out.println("Process instances running = " + runtimeService.createProcessInstanceQuery().count());
+ LinkedList tasks = new LinkedList<>(taskService.createTaskQuery().list());
+ int taskCounter = 0;
+ while (!tasks.isEmpty()) {
+ Task task = taskService.createTaskQuery().taskId(tasks.pop().getId()).singleResult();
+ if (task != null) {
+ taskService.complete(task.getId());
+
+ taskCounter++;
+ if (taskCounter % 10 == 0) {
+ System.out.println("Completed " + taskCounter + " tasks");
+ }
+ }
+ tasks.addAll(taskService.createTaskQuery().list());
+ }
+
+ System.out.println("Finished all tasks. Finished process instances = "
+ + historyService.createHistoricProcessInstanceQuery().finished().count());
+
+ processEngine.close();
+ }
+
+}
diff --git a/src/main/java/org/flowable/delegate/MyJavaDelegate.java b/src/main/java/org/flowable/delegate/MyJavaDelegate.java
new file mode 100644
index 0000000..5f8522f
--- /dev/null
+++ b/src/main/java/org/flowable/delegate/MyJavaDelegate.java
@@ -0,0 +1,14 @@
+package org.flowable.delegate;
+
+import org.activiti.engine.delegate.DelegateExecution;
+import org.activiti.engine.delegate.JavaDelegate;
+
+public class MyJavaDelegate implements JavaDelegate {
+
+ @Override
+ public void execute(DelegateExecution execution) {
+ Integer var = (Integer) execution.getVariable("var");
+ execution.setVariable("var", var * 10);
+ }
+
+}
diff --git a/src/main/resources/README.txt b/src/main/resources/README.txt
new file mode 100644
index 0000000..e79a0a7
--- /dev/null
+++ b/src/main/resources/README.txt
@@ -0,0 +1,25 @@
+* Download latest CockroachDB tarball
+* Untar and run: ./cockroachdb start
+* ./cockroach start --store=node2 --port=26258 --http-port=8081 --join=localhost:26257
+*
+* Admin UI is running on http://localhost:8080/
+* Create a database and a user: ./cockroachdb sql
+* Execute following statements:
+ * CREATE DATABASE flowable;
+ * GRANT ALL ON DATABASE flowable TO maxroach;
+* CockroachDB hasn't implemented the 'jdbc metadata' yet, which means the Flowable auto-schema creation won't work.
+* Manually create the schema (simplified engine sql script, without foreign keys):
+
+sql=$(wget https://raw.githubusercontent.com/jbarrez/flowable-cockroachdb-demo/master/engine-schema.sql -q -O -)
+./cockroach sql --database=flowable --user=maxroach -e "$sql"
+
+
+---------------------------------------------------------------------------------------------------------
+ Tested on CockroachDB with following version (./cockroachdb version):
+
+Build Tag: beta-20161027
+Build Time: 2016/10/27 13:34:56
+Platform: linux amd64
+Go Version: go1.7.3
+C Compiler: gcc 4.9.2
+
\ No newline at end of file
diff --git a/src/main/resources/demo-process.bpmn b/src/main/resources/demo-process.bpmn
new file mode 100644
index 0000000..4b45cf5
--- /dev/null
+++ b/src/main/resources/demo-process.bpmn
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PT5H
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/flowable.cfg.xml b/src/main/resources/flowable.cfg.xml
new file mode 100644
index 0000000..d43455e
--- /dev/null
+++ b/src/main/resources/flowable.cfg.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties
new file mode 100644
index 0000000..7a95dfb
--- /dev/null
+++ b/src/main/resources/log4j.properties
@@ -0,0 +1,11 @@
+log4j.rootLogger=INFO, CA
+
+# ConsoleAppender
+log4j.appender.CA=org.apache.log4j.ConsoleAppender
+log4j.appender.CA.layout=org.apache.log4j.PatternLayout
+log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n
+
+
+log4j.logger.org.apache.ibatis.level=INFO
+log4j.logger.javax.activation.level=INFO
+log4j.logger.org.activiti.engine.impl.agenda=INFO
\ No newline at end of file