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;
}
}