From 772dd72a3a57fbf9f8a77ddc773469ec9c8b9a1d Mon Sep 17 00:00:00 2001
From: Johannes Mey <johannes.mey@tu-dresden.de>
Date: Fri, 8 Feb 2019 09:58:19 +0100
Subject: [PATCH] new configuration change detection.

---
 .../st/mquat/eris/coupling/ERISConnector.java    | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/jastadd-mquat-eris/src/main/java/de/tudresden/inf/st/mquat/eris/coupling/ERISConnector.java b/jastadd-mquat-eris/src/main/java/de/tudresden/inf/st/mquat/eris/coupling/ERISConnector.java
index 0aff1e0..f3c4a6d 100644
--- a/jastadd-mquat-eris/src/main/java/de/tudresden/inf/st/mquat/eris/coupling/ERISConnector.java
+++ b/jastadd-mquat-eris/src/main/java/de/tudresden/inf/st/mquat/eris/coupling/ERISConnector.java
@@ -368,6 +368,22 @@ public class ERISConnector {
         }
         logger.debug("        -> config has changed for living partition {}: {}", livingPartition, configHasChanged);
 
+        // figure out if the config has changed by comparing the new and old config by access path and attributes
+        configHasChanged = false;
+        if (livingPartition.getConfigurations().size() != configsToUse.size()) {
+          configHasChanged = true;
+        } else {
+          outer: for (ERISLPConfiguration newConfig : configsToUse) {
+            for (ERISLPConfiguration oldConfig : livingPartition.getConfigurations()) {
+              if (oldConfig.getAccessPath() == newConfig.getAccessPath() && oldConfig.getAttributesAndKeys().containsAll(newConfig.getAttributesAndKeys())) {
+                continue outer;
+              }
+            }
+            configHasChanged = true;
+            break;
+          }
+        }
+
         if (configHasChanged) {
           // write back changed config
 
-- 
GitLab