From 31c2ac2bfc302a0f4fcedcc96f721e58c6182e32 Mon Sep 17 00:00:00 2001 From: Stefano Mazzocchi Date: Wed, 7 Jul 2010 08:11:40 +0000 Subject: [PATCH] adding the ability to start a project with existing transformations git-svn-id: http://google-refine.googlecode.com/svn/trunk@1079 7d457c2a-affb-35e4-300a-418c747d4874 --- .../com/metaweb/gridworks/broker/GridworksBroker.java | 4 ++-- .../metaweb/gridworks/broker/GridworksBrokerImpl.java | 11 ++++++----- .../gridworks/broker/tests/GridworksBrokerTests.java | 3 ++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/broker/core/src/com/metaweb/gridworks/broker/GridworksBroker.java b/broker/core/src/com/metaweb/gridworks/broker/GridworksBroker.java index 4bc6a12f6..f1415c7c3 100644 --- a/broker/core/src/com/metaweb/gridworks/broker/GridworksBroker.java +++ b/broker/core/src/com/metaweb/gridworks/broker/GridworksBroker.java @@ -129,7 +129,7 @@ public abstract class GridworksBroker extends ButterflyModuleImpl { } else if (START.equals(path)) { response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Type", "application/json"); - startProject(response, getParameter(request, "pid"), getUserId(request), getParameter(request, "lock"), getData(request), getParameter(request, "metadata"), getInteger(request, "rev")); + startProject(response, getParameter(request, "pid"), getUserId(request), getParameter(request, "lock"), getData(request), getParameter(request, "metadata"), getList(request, "transformations")); } else if (OPEN.equals(path)) { response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Type", "application/json"); @@ -165,7 +165,7 @@ public abstract class GridworksBroker extends ButterflyModuleImpl { protected abstract void releaseLock(HttpServletResponse response, String pid, String uid, String lock) throws Exception; - protected abstract void startProject(HttpServletResponse response, String pid, String uid, String lock, byte[] data, String metadata, int rev) throws Exception; + protected abstract void startProject(HttpServletResponse response, String pid, String uid, String lock, byte[] data, String metadata, List transformations) throws Exception; protected abstract void addTransformations(HttpServletResponse response, String pid, String uid, String lock, List transformations) throws Exception; diff --git a/broker/core/src/com/metaweb/gridworks/broker/GridworksBrokerImpl.java b/broker/core/src/com/metaweb/gridworks/broker/GridworksBrokerImpl.java index 246c1d524..bde761ba4 100644 --- a/broker/core/src/com/metaweb/gridworks/broker/GridworksBrokerImpl.java +++ b/broker/core/src/com/metaweb/gridworks/broker/GridworksBrokerImpl.java @@ -308,7 +308,7 @@ public class GridworksBrokerImpl extends GridworksBroker { // ---------------------------------------------------------------------------------------------------- @Override - protected void startProject(HttpServletResponse response, String pid, String uid, String lid, byte[] data, String metadata, int rev) throws Exception { + protected void startProject(HttpServletResponse response, String pid, String uid, String lid, byte[] data, String metadata, List transformations) throws Exception { Transaction txn = env.beginTransaction(null, null); @@ -323,7 +323,7 @@ public class GridworksBrokerImpl extends GridworksBroker { throw new RuntimeException("The lock you have is not enough to start a project"); } - projectById.put(txn, new Project(pid, data, metadata, rev)); + projectById.put(txn, new Project(pid, data, metadata, transformations)); txn.commit(); } finally { if (txn != null) { @@ -478,7 +478,7 @@ public class GridworksBrokerImpl extends GridworksBroker { @PrimaryKey String pid; - List transformations = new ArrayList(); + List transformations; byte[] data; @@ -486,11 +486,12 @@ public class GridworksBrokerImpl extends GridworksBroker { int rev; - Project(String pid, byte[] data, String metadata, int rev) { + Project(String pid, byte[] data, String metadata, List transformations) { this.pid = pid; this.data = data; this.metadata = metadata; - this.rev = rev; + this.transformations = (transformations != null) ? transformations : new ArrayList(); + this.rev = this.transformations.size(); } @SuppressWarnings("unused") diff --git a/broker/core/tests/src/com/metaweb/gridworks/broker/tests/GridworksBrokerTests.java b/broker/core/tests/src/com/metaweb/gridworks/broker/tests/GridworksBrokerTests.java index 5a805102f..ea76a6251 100644 --- a/broker/core/tests/src/com/metaweb/gridworks/broker/tests/GridworksBrokerTests.java +++ b/broker/core/tests/src/com/metaweb/gridworks/broker/tests/GridworksBrokerTests.java @@ -291,6 +291,7 @@ public class GridworksBrokerTests { String user2 = "testuser2"; String data = "blah"; String metadata = "{}"; + String transformations = "[]"; String rev = "0"; logger.info("--- obtain ALL lock on project ---"); @@ -299,7 +300,7 @@ public class GridworksBrokerTests { String lock = result.getString("lock"); logger.info("--- start project ---"); - success(broker, request, response, START, "pid", project, "uid", user, "lock", lock, "data", data, "metadata", metadata, "rev", rev); + success(broker, request, response, START, "pid", project, "uid", user, "lock", lock, "data", data, "metadata", metadata, "transformations", transformations); logger.info("--- verify project state contains lock ---"); result = success(broker, request, response, GET_STATE, "pid", project, "uid", user, "rev", rev);