From da5df3957ba41d28256ab8183aae0dd3b6e0dcba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magdalena=20Grodzi=C5=84ska?= Date: Sun, 12 Jan 2020 21:05:28 +0100 Subject: Add query signer architecture --- .../pl/edu/mimuw/cloudatlas/model/ValueQuery.java | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/model') diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java index 82e1602..d203e99 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java @@ -15,6 +15,28 @@ public class ValueQuery extends Value { private String code; // Parsed query private Program query; + + public byte[] getSignature() { + return signature; + } + + public void setSignature(byte[] signature) { + this.signature = signature; + } + + public long getTimestamp() { + return timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + // Query signature + private byte[] signature; + // Query signing timestamp + private long timestamp; + /** * Constructs a new ValueQuery object. * -- cgit v1.2.3 From 36cf47fd63352c67a5fdeea7a922c16f0856e9aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magdalena=20Grodzi=C5=84ska?= Date: Sun, 12 Jan 2020 22:57:43 +0100 Subject: Add new fields to value query --- .../pl/edu/mimuw/cloudatlas/model/ValueQuery.java | 39 ++++++++++++---------- 1 file changed, 22 insertions(+), 17 deletions(-) (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/model') diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java index d203e99..26a5fbb 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java @@ -15,23 +15,6 @@ public class ValueQuery extends Value { private String code; // Parsed query private Program query; - - public byte[] getSignature() { - return signature; - } - - public void setSignature(byte[] signature) { - this.signature = signature; - } - - public long getTimestamp() { - return timestamp; - } - - public void setTimestamp(long timestamp) { - this.timestamp = timestamp; - } - // Query signature private byte[] signature; // Query signing timestamp @@ -47,17 +30,39 @@ public class ValueQuery extends Value { this.code = query; Yylex lex = new Yylex(new ByteArrayInputStream(query.getBytes())); this.query = (new parser(lex)).pProgram(); + this.signature = null; + this.timestamp = System.currentTimeMillis(); + } + + public ValueQuery(String query, byte[] querySignature) throws Exception { + this.code = query; + Yylex lex = new Yylex(new ByteArrayInputStream(query.getBytes())); + this.query = (new parser(lex)).pProgram(); + this.signature = querySignature; + this.timestamp = System.currentTimeMillis(); } private ValueQuery() { this.code = null; this.query = null; + this.signature = null; + this.timestamp = System.currentTimeMillis(); } public Program getQuery() { return query; } + public byte[] getSignature() { return signature; } + + public long getTimestamp() { return timestamp; } + + public void setTimestamp(long timestamp) { this.timestamp = timestamp; } + + public String getCode() { + return code; + } + @Override public Type getType() { return TypePrimitive.QUERY; -- cgit v1.2.3 From cc901690a8e3e41a1958ae33d95462031fba8e89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magdalena=20Grodzi=C5=84ska?= Date: Sun, 12 Jan 2020 23:07:32 +0100 Subject: Fix query value typo --- src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java | 5 ----- 1 file changed, 5 deletions(-) (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/model') diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java index c5d4b54..6839e4c 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java @@ -23,7 +23,6 @@ public class ValueQuery extends Value { /** * Constructs a new ValueQuery object. * - * @param name the name of the query * @param query the code of the query */ public ValueQuery(String query) throws Exception { @@ -61,10 +60,6 @@ public class ValueQuery extends Value { public void setTimestamp(long timestamp) { this.timestamp = timestamp; } - public String getCode() { - return code; - } - @Override public Type getType() { return TypePrimitive.QUERY; -- cgit v1.2.3 From 23b8714b29816b608cb3aa330b6e93610e107126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magdalena=20Grodzi=C5=84ska?= Date: Mon, 13 Jan 2020 20:56:41 +0100 Subject: Create simple query data structure so that RMI doesn't blow up --- src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/model') diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java index 6839e4c..ece50b5 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java @@ -6,6 +6,7 @@ import pl.edu.mimuw.cloudatlas.interpreter.query.Absyn.Program; import pl.edu.mimuw.cloudatlas.interpreter.query.parser; import pl.edu.mimuw.cloudatlas.interpreter.query.Yylex; import pl.edu.mimuw.cloudatlas.model.Value; +import pl.edu.mimuw.cloudatlas.querysigner.QueryData; /** * A class that holds a CloudAtlas query. @@ -41,6 +42,14 @@ public class ValueQuery extends Value { this.timestamp = System.currentTimeMillis(); } + public ValueQuery(QueryData queryData) throws Exception { + this.code = queryData.getCode(); + Yylex lex = new Yylex(new ByteArrayInputStream(queryData.getCode().getBytes())); + this.query = (new parser(lex)).pProgram(); + this.signature = queryData.getSignature(); + this.timestamp = System.currentTimeMillis(); + } + private ValueQuery() { this.code = null; this.query = null; -- cgit v1.2.3 From 83feb6ad13187af9be55cc71408611f67d280955 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magdalena=20Grodzi=C5=84ska?= Date: Tue, 14 Jan 2020 21:28:10 +0100 Subject: Fix timestamps and ValueQuery --- .../java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/model') diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java index ece50b5..3edda69 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java @@ -28,24 +28,30 @@ public class ValueQuery extends Value { */ public ValueQuery(String query) throws Exception { this.code = query; - Yylex lex = new Yylex(new ByteArrayInputStream(query.getBytes())); - this.query = (new parser(lex)).pProgram(); + if (!query.isEmpty()) { + Yylex lex = new Yylex(new ByteArrayInputStream(query.getBytes())); + this.query = (new parser(lex)).pProgram(); + } this.signature = null; this.timestamp = System.currentTimeMillis(); } public ValueQuery(String query, byte[] querySignature) throws Exception { this.code = query; - Yylex lex = new Yylex(new ByteArrayInputStream(query.getBytes())); - this.query = (new parser(lex)).pProgram(); + if (!query.isEmpty()) { + Yylex lex = new Yylex(new ByteArrayInputStream(query.getBytes())); + this.query = (new parser(lex)).pProgram(); + } this.signature = querySignature; this.timestamp = System.currentTimeMillis(); } public ValueQuery(QueryData queryData) throws Exception { this.code = queryData.getCode(); - Yylex lex = new Yylex(new ByteArrayInputStream(queryData.getCode().getBytes())); - this.query = (new parser(lex)).pProgram(); + if (!queryData.getCode().isEmpty()) { + Yylex lex = new Yylex(new ByteArrayInputStream(queryData.getCode().getBytes())); + this.query = (new parser(lex)).pProgram(); + } this.signature = queryData.getSignature(); this.timestamp = System.currentTimeMillis(); } -- cgit v1.2.3 From c4513b4817ec623d026fa35682b4934a211e1b8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magdalena=20Grodzi=C5=84ska?= Date: Tue, 14 Jan 2020 21:54:11 +0100 Subject: Some small fixes --- src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/model') diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java index 3edda69..f049603 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java @@ -56,6 +56,16 @@ public class ValueQuery extends Value { this.timestamp = System.currentTimeMillis(); } + public ValueQuery(String query, long timestamp) throws Exception { + this.code = query; + if (!query.isEmpty()) { + Yylex lex = new Yylex(new ByteArrayInputStream(query.getBytes())); + this.query = (new parser(lex)).pProgram(); + } + this.signature = null; + this.timestamp = timestamp; + } + private ValueQuery() { this.code = null; this.query = null; -- cgit v1.2.3 From 9681d76b15cc68f2f8246972ae8266522b92fefe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magdalena=20Grodzi=C5=84ska?= Date: Tue, 14 Jan 2020 22:33:17 +0100 Subject: Add query installation check --- src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/model') diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java index f049603..95f826a 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/model/ValueQuery.java @@ -20,6 +20,8 @@ public class ValueQuery extends Value { private byte[] signature; // Query signing timestamp private long timestamp; + // Query installation status + private boolean installed; /** * Constructs a new ValueQuery object. @@ -34,6 +36,7 @@ public class ValueQuery extends Value { } this.signature = null; this.timestamp = System.currentTimeMillis(); + this.installed = true; } public ValueQuery(String query, byte[] querySignature) throws Exception { @@ -44,6 +47,7 @@ public class ValueQuery extends Value { } this.signature = querySignature; this.timestamp = System.currentTimeMillis(); + this.installed = true; } public ValueQuery(QueryData queryData) throws Exception { @@ -54,6 +58,7 @@ public class ValueQuery extends Value { } this.signature = queryData.getSignature(); this.timestamp = System.currentTimeMillis(); + this.installed = queryData.isInstalled(); } public ValueQuery(String query, long timestamp) throws Exception { @@ -64,6 +69,7 @@ public class ValueQuery extends Value { } this.signature = null; this.timestamp = timestamp; + this.installed = true; } private ValueQuery() { @@ -71,6 +77,7 @@ public class ValueQuery extends Value { this.query = null; this.signature = null; this.timestamp = System.currentTimeMillis(); + this.installed = true; } public String getCode() { return code; } @@ -85,6 +92,10 @@ public class ValueQuery extends Value { public void setTimestamp(long timestamp) { this.timestamp = timestamp; } + public boolean isInstalled() { return installed; } + + public void setInstalled(boolean installed) { this.installed = installed; } + @Override public Type getType() { return TypePrimitive.QUERY; -- cgit v1.2.3