Changes to allow multiple versions of the demo app to run at the same time on Jemo.
diff --git a/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/Market.java b/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/Market.java
index d93f43d..307afe7 100644
--- a/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/Market.java
+++ b/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/Market.java
@@ -46,11 +46,16 @@
     @Override
     public void installed() {
         log(INFO, "Installed phase. Initializing the database...");
-        TRADER_REPOSITORY.init();
+        final boolean wasInitNeeded = TRADER_REPOSITORY.init();
         STOCK_REPOSITORY.init();
 
+        if (!wasInitNeeded) {
+            log(INFO, "The database is already initialized...");
+            return;
+        }
+
         // Create 20 stocks.
-        final Stock[] stocks = IntStream.range(1, CURRENT_STOCK_ID)
+        final Stock[] stocks = IntStream.range(1, 21)
                 .mapToObj(id -> new Stock(String.valueOf(id), 100f))
                 .toArray(Stock[]::new);
         STOCK_REPOSITORY.save(stocks);
@@ -167,6 +172,7 @@
         msg.setModuleClass(MarketMatcher.class.getName());
         msg.setId("1");
         msg.setPluginId(1);
+        msg.setPluginVersion(1.0); // Needs to be the same as the pom version
         msg.getAttributes().put(TRADER_ID, traderId);
         msg.send(JemoMessage.LOCATION_LOCALLY);
     }
diff --git a/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/StockRepository.java b/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/StockRepository.java
index 2a3ae7b..ac6299e 100644
--- a/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/StockRepository.java
+++ b/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/StockRepository.java
@@ -24,11 +24,9 @@
     }
 
     public void init() {
-        if (runtime.hasNoSQLTable(TABLE_NAME)) {
-            runtime.dropNoSQLTable(TABLE_NAME);
+        if (!runtime.hasNoSQLTable(TABLE_NAME)) {
+            runtime.createNoSQLTable(TABLE_NAME);
         }
-        runtime.createNoSQLTable(TABLE_NAME);
-
     }
 
     public List<Stock> findAll() {
diff --git a/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/TraderRepository.java b/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/TraderRepository.java
index 47dbb21..7122324 100644
--- a/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/TraderRepository.java
+++ b/demos/jemo-trader-app/src/main/java/org/eclipse/jemo/tutorial/market/TraderRepository.java
@@ -22,9 +22,12 @@
         this.runtime = runtime;
     }
 
-    public void init() {
+    public boolean init() {
         if (!runtime.hasNoSQLTable(TABLE_NAME)) {
             runtime.createNoSQLTable(TABLE_NAME);
+            return true;
+        } else {
+            return false;
         }
     }