diff options
| author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2019-12-30 11:46:07 +0100 | 
|---|---|---|
| committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2019-12-30 13:18:02 +0100 | 
| commit | c6f148b33422f0d1660a4289f413193011736475 (patch) | |
| tree | 9a322a93a6786002a7324a1e17e7da6c0d493eb4 /src/main/java/pl/edu | |
| parent | 0e9ed16b0a048266b56d1238bd7a8a31e59fdac5 (diff) | |
Test multiple queries in Qurnik
Diffstat (limited to 'src/main/java/pl/edu')
3 files changed, 27 insertions, 17 deletions
| diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Qurnik.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Qurnik.java index 3864aba..9b7268a 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Qurnik.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Qurnik.java @@ -15,6 +15,7 @@ import pl.edu.mimuw.cloudatlas.interpreter.InterpreterException;  import pl.edu.mimuw.cloudatlas.interpreter.QueryResult;  import pl.edu.mimuw.cloudatlas.model.Attribute;  import pl.edu.mimuw.cloudatlas.model.AttributesMap; +import pl.edu.mimuw.cloudatlas.model.AttributesUtil;  import pl.edu.mimuw.cloudatlas.model.PathName;  import pl.edu.mimuw.cloudatlas.model.TypePrimitive;  import pl.edu.mimuw.cloudatlas.model.Value; @@ -92,9 +93,11 @@ public class Qurnik extends Module {              if (!currentPath.toString().equals("/")) {                  newAttributes.add("name", new ValueString(currentPath.getSingletonName()));              } -            long currentTime = System.currentTimeMillis() / 1000; +            long currentTime = System.currentTimeMillis();              newAttributes.add("timestamp", new ValueTime(currentTime)); +            AttributesUtil.transferAttributes(newAttributes, zmi.getAttributes()); +              UpdateAttributesMessage message = new UpdateAttributesMessage("", currentTime, currentPath.toString(), newAttributes);              sendMessage(message);          } diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java index e8721b3..4694219 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java @@ -12,6 +12,7 @@ import pl.edu.mimuw.cloudatlas.agent.messages.UpdateAttributesMessage;  import pl.edu.mimuw.cloudatlas.agent.messages.UpdateQueriesMessage;  import pl.edu.mimuw.cloudatlas.model.Attribute;  import pl.edu.mimuw.cloudatlas.model.AttributesMap; +import pl.edu.mimuw.cloudatlas.model.AttributesUtil;  import pl.edu.mimuw.cloudatlas.model.PathName;  import pl.edu.mimuw.cloudatlas.model.Type;  import pl.edu.mimuw.cloudatlas.model.TypePrimitive; @@ -67,7 +68,7 @@ public class Stanik extends Module {              ZMI zone = hierarchy.findDescendant(message.getPathName());              AttributesMap attributes = zone.getAttributes();              if (valueLower(attributes.get("timestamp"), message.getAttributes().get("timestamp"))) { -                transferAttributes(message.getAttributes(), attributes); +                AttributesUtil.transferAttributes(message.getAttributes(), attributes);              } else {                  System.out.println("DEBUG: not applying update with older attributes");              } @@ -127,21 +128,6 @@ public class Stanik extends Module {          return value != null && !value.isNull() && value.getType().isCompatible(type);      } -    private void transferAttributes(AttributesMap fromAttributes, AttributesMap toAttributes) { -        Iterator<Entry<Attribute, Value>> iterator = toAttributes.iterator(); -        while (iterator.hasNext()) { -            Entry<Attribute, Value> entry = iterator.next(); -            Attribute attribute = entry.getKey(); -            Value newValue = fromAttributes.getOrNull(attribute); -            if (newValue == null) { -                iterator.remove(); -            } -        } -        for (Entry<Attribute, Value> entry : fromAttributes) { -            toAttributes.addOrChange(entry.getKey(), entry.getValue()); -        } -    } -      private void addMissingZones(PathName path) {          try {              if (!hierarchy.descendantExists(path)) { diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/model/AttributesUtil.java b/src/main/java/pl/edu/mimuw/cloudatlas/model/AttributesUtil.java new file mode 100644 index 0000000..cd2ae91 --- /dev/null +++ b/src/main/java/pl/edu/mimuw/cloudatlas/model/AttributesUtil.java @@ -0,0 +1,21 @@ +package pl.edu.mimuw.cloudatlas.model; + +import java.util.Iterator; +import java.util.Map.Entry; + +public class AttributesUtil { +    public static void transferAttributes(AttributesMap fromAttributes, AttributesMap toAttributes) { +        Iterator<Entry<Attribute, Value>> iterator = toAttributes.iterator(); +        while (iterator.hasNext()) { +            Entry<Attribute, Value> entry = iterator.next(); +            Attribute attribute = entry.getKey(); +            Value newValue = fromAttributes.getOrNull(attribute); +            if (newValue == null) { +                iterator.remove(); +            } +        } +        for (Entry<Attribute, Value> entry : fromAttributes) { +            toAttributes.addOrChange(entry.getKey(), entry.getValue()); +        } +    } +} |