Skip to content

Commit 5639f1b

Browse files
authored
Merge pull request #1755 from OpenRefine/jackson-serialization
Jackson serialization
2 parents 3a96cad + 7ff4a45 commit 5639f1b

File tree

551 files changed

+9635
-64859
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

551 files changed

+9635
-64859
lines changed

extensions/database/pom.xml

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -153,18 +153,13 @@
153153
<dependency>
154154
<groupId>com.fasterxml.jackson.core</groupId>
155155
<artifactId>jackson-core</artifactId>
156-
<version>2.1.3</version>
156+
<version>2.9.7</version>
157157
<scope>provided</scope>
158158
</dependency>
159159
<dependency>
160-
<groupId>org.codehaus.jackson</groupId>
161-
<artifactId>jackson-core-asl</artifactId>
162-
<version>1.9.13</version>
163-
</dependency>
164-
<dependency>
165-
<groupId>org.codehaus.jackson</groupId>
166-
<artifactId>jackson-mapper-asl</artifactId>
167-
<version>1.9.13</version>
160+
<groupId>com.fasterxml.jackson.core</groupId>
161+
<artifactId>jackson-annotations</artifactId>
162+
<version>2.9.7</version>
168163
</dependency>
169164
<dependency>
170165
<groupId>org.apache.commons</groupId>

extensions/database/src/com/google/refine/extension/database/DatabaseImportController.java

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@
3939
import javax.servlet.http.HttpServletRequest;
4040
import javax.servlet.http.HttpServletResponse;
4141

42-
import org.json.JSONException;
43-
import org.json.JSONObject;
44-
import org.json.JSONWriter;
4542
import org.slf4j.Logger;
4643
import org.slf4j.LoggerFactory;
4744

45+
import com.fasterxml.jackson.core.JsonGenerator;
46+
import com.fasterxml.jackson.databind.node.ObjectNode;
4847
import com.google.refine.ProjectManager;
48+
import com.google.refine.ProjectMetadata;
4949
import com.google.refine.RefineServlet;
5050
import com.google.refine.commands.HttpUtilities;
5151
import com.google.refine.extension.database.model.DatabaseColumn;
@@ -55,7 +55,6 @@
5555
import com.google.refine.importing.ImportingJob;
5656
import com.google.refine.importing.ImportingManager;
5757
import com.google.refine.model.Project;
58-
import com.google.refine.model.metadata.ProjectMetadata;
5958
import com.google.refine.util.JSONUtilities;
6059
import com.google.refine.util.ParsingUtilities;
6160

@@ -140,8 +139,8 @@ private void doInitializeParserUI(HttpServletRequest request, HttpServletRespons
140139
}
141140

142141

143-
JSONObject result = new JSONObject();
144-
JSONObject options = new JSONObject();
142+
ObjectNode result = ParsingUtilities.mapper.createObjectNode();
143+
ObjectNode options = ParsingUtilities.mapper.createObjectNode();
145144
JSONUtilities.safePut(result, "status", "ok");
146145
JSONUtilities.safePut(result, OPTIONS_KEY, options);
147146

@@ -191,7 +190,7 @@ private void doParsePreview(
191190

192191
job.updating = true;
193192
try {
194-
JSONObject optionObj = ParsingUtilities.evaluateJsonStringToObject(
193+
ObjectNode optionObj = ParsingUtilities.evaluateJsonStringToObjectNode(
195194
request.getParameter("options"));
196195

197196
List<Exception> exceptions = new LinkedList<Exception>();
@@ -207,35 +206,28 @@ private void doParsePreview(
207206
optionObj,
208207
exceptions
209208
);
210-
// String exStr = getExceptionString(exceptions);
211-
// logger.info("exceptions::" + exStr);
212-
213209
Writer w = response.getWriter();
214-
JSONWriter writer = new JSONWriter(w);
210+
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
215211
try {
216-
writer.object();
212+
writer.writeStartObject();
217213
if (exceptions.size() == 0) {
218214
job.project.update(); // update all internal models, indexes, caches, etc.
219-
writer.key("status");
220-
writer.value("ok");
215+
writer.writeStringField("status", "ok");
221216
} else {
222-
writer.key("status");
223-
writer.value("error");
224-
writer.key("message");
225-
writer.value(getExceptionString(exceptions));
226-
// writer.array();
227-
// writeErrors(writer, exceptions);
228-
// writer.endArray();
217+
writer.writeStringField("status", "error");
218+
writer.writeStringField("message", getExceptionString(exceptions));
229219
}
230-
writer.endObject();
231-
} catch (JSONException e) {
220+
writer.writeEndObject();
221+
} catch (IOException e) {
232222
throw new ServletException(e);
233223
} finally {
224+
writer.flush();
225+
writer.close();
234226
w.flush();
235227
w.close();
236228
}
237229

238-
} catch (JSONException e) {
230+
} catch (IOException e) {
239231
throw new ServletException(e);
240232
} finally {
241233
job.touch();
@@ -271,7 +263,7 @@ private static void parsePreview(
271263
ProjectMetadata metadata,
272264
final ImportingJob job,
273265
int limit,
274-
JSONObject options,
266+
ObjectNode options,
275267
List<Exception> exceptions) throws DatabaseServiceException{
276268

277269

@@ -329,7 +321,7 @@ private void doCreateProject(HttpServletRequest request, HttpServletResponse res
329321

330322
job.updating = true;
331323
try {
332-
final JSONObject optionObj = ParsingUtilities.evaluateJsonStringToObject(
324+
final ObjectNode optionObj = ParsingUtilities.evaluateJsonStringToObjectNode(
333325
request.getParameter("options"));
334326

335327
final List<Exception> exceptions = new LinkedList<Exception>();
@@ -378,7 +370,7 @@ public void run() {
378370
}.start();
379371

380372
HttpUtilities.respond(response, "ok", "done");
381-
} catch (JSONException e) {
373+
} catch (IOException e) {
382374
throw new ServletException(e);
383375
}
384376
}
@@ -400,7 +392,7 @@ private static void parseCreate(
400392
ProjectMetadata metadata,
401393
final ImportingJob job,
402394
int limit,
403-
JSONObject options,
395+
ObjectNode options,
404396
List<Exception> exceptions) throws DatabaseServiceException{
405397

406398

extensions/database/src/com/google/refine/extension/database/DatabaseModuleImpl.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,9 @@
3535

3636
import javax.servlet.ServletConfig;
3737

38-
import org.json.JSONException;
39-
import org.json.JSONWriter;
4038
import org.slf4j.Logger;
4139
import org.slf4j.LoggerFactory;
4240

43-
import com.google.refine.Jsonizable;
44-
4541
import edu.mit.simile.butterfly.ButterflyModuleImpl;
4642

4743

extensions/database/src/com/google/refine/extension/database/DatabaseUtils.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,13 @@
3434
import java.util.List;
3535
import java.util.ListIterator;
3636

37-
import org.codehaus.jackson.JsonGenerationException;
38-
import org.codehaus.jackson.JsonParseException;
39-
import org.codehaus.jackson.map.JsonMappingException;
40-
import org.codehaus.jackson.map.ObjectMapper;
4137
import org.slf4j.Logger;
4238
import org.slf4j.LoggerFactory;
4339

40+
import com.fasterxml.jackson.core.JsonGenerationException;
41+
import com.fasterxml.jackson.core.JsonParseException;
42+
import com.fasterxml.jackson.databind.JsonMappingException;
43+
import com.fasterxml.jackson.databind.ObjectMapper;
4444
import com.google.refine.ProjectManager;
4545
import com.google.refine.io.FileProjectManager;
4646

extensions/database/src/com/google/refine/extension/database/cmd/ConnectCommand.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,17 @@
3636
import javax.servlet.http.HttpServletResponse;
3737

3838
import org.apache.http.HttpStatus;
39-
import org.codehaus.jackson.map.ObjectMapper;
40-
import org.json.JSONWriter;
4139
import org.slf4j.Logger;
4240
import org.slf4j.LoggerFactory;
4341

42+
import com.fasterxml.jackson.core.JsonGenerator;
43+
import com.fasterxml.jackson.databind.ObjectMapper;
4444
//import com.google.refine.ProjectManager;
4545
import com.google.refine.extension.database.DatabaseConfiguration;
4646
import com.google.refine.extension.database.DatabaseService;
4747
import com.google.refine.extension.database.DatabaseServiceException;
4848
import com.google.refine.extension.database.model.DatabaseInfo;
49+
import com.google.refine.util.ParsingUtilities;
4950

5051

5152
public class ConnectCommand extends DatabaseCommand {
@@ -66,30 +67,28 @@ public void doPost(HttpServletRequest request, HttpServletResponse response)
6667
response.setCharacterEncoding("UTF-8");
6768
response.setHeader("Content-Type", "application/json");
6869
Writer w = response.getWriter();
69-
JSONWriter writer = new JSONWriter(w);
70+
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
7071
ObjectMapper mapperObj = new ObjectMapper();
7172

7273
try {
7374
DatabaseInfo databaseInfo = DatabaseService.get(databaseConfiguration.getDatabaseType())
7475
.connect(databaseConfiguration);
7576
String databaseInfoString = mapperObj.writeValueAsString(databaseInfo);
7677
response.setStatus(HttpStatus.SC_OK);
77-
writer.object();
78-
writer.key("code");
79-
writer.value("ok");
80-
writer.key("databaseInfo");
81-
writer.value(databaseInfoString);
82-
83-
writer.endObject();
78+
writer.writeStartObject();
79+
writer.writeStringField("code", "ok");
80+
writer.writeStringField("databaseInfo", databaseInfoString);
81+
writer.writeEndObject();
8482

8583
} catch (DatabaseServiceException e) {
8684
logger.error("ConnectCommand::Post::DatabaseServiceException::{}", e);
87-
sendError(HttpStatus.SC_UNAUTHORIZED,response, writer, e);
85+
sendError(HttpStatus.SC_UNAUTHORIZED,response, e);
8886
}catch (Exception e) {
8987
logger.error("ConnectCommand::Post::Exception::{}", e);
90-
sendError(HttpStatus.SC_UNAUTHORIZED,response, writer, e);
88+
sendError(HttpStatus.SC_UNAUTHORIZED,response, e);
9189
} finally {
92-
// w.flush();
90+
writer.flush();
91+
writer.close();
9392
w.close();
9493
}
9594
} catch (Exception e) {

extensions/database/src/com/google/refine/extension/database/cmd/DatabaseCommand.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import javax.servlet.http.HttpServletRequest;
3434
import javax.servlet.http.HttpServletResponse;
3535

36-
import org.json.JSONWriter;
3736
import org.slf4j.Logger;
3837
import org.slf4j.LoggerFactory;
3938

@@ -82,7 +81,7 @@ protected DatabaseConfiguration getJdbcConfiguration(HttpServletRequest request)
8281
* @param e
8382
* @throws IOException
8483
*/
85-
protected void sendError(int status, HttpServletResponse response, JSONWriter writer, Exception e)
84+
protected void sendError(int status, HttpServletResponse response, Exception e)
8685
throws IOException {
8786

8887
//logger.info("sendError::{}", writer);
@@ -97,7 +96,7 @@ protected void sendError(int status, HttpServletResponse response, JSONWriter wr
9796
* @param e
9897
* @throws IOException
9998
*/
100-
protected void sendError(int status, HttpServletResponse response, JSONWriter writer, DatabaseServiceException e)
99+
protected void sendError(int status, HttpServletResponse response, DatabaseServiceException e)
101100
throws IOException {
102101

103102
String message = "";

extensions/database/src/com/google/refine/extension/database/cmd/ExecuteQueryCommand.java

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,17 @@
3636
import javax.servlet.http.HttpServletResponse;
3737

3838
import org.apache.http.HttpStatus;
39-
import org.codehaus.jackson.map.ObjectMapper;
40-
import org.json.JSONWriter;
4139
import org.slf4j.Logger;
4240
import org.slf4j.LoggerFactory;
4341

42+
import com.fasterxml.jackson.core.JsonGenerator;
43+
import com.fasterxml.jackson.databind.ObjectMapper;
4444
//import com.google.refine.ProjectManager;
4545
import com.google.refine.extension.database.DatabaseConfiguration;
4646
import com.google.refine.extension.database.DatabaseService;
4747
import com.google.refine.extension.database.DatabaseServiceException;
4848
import com.google.refine.extension.database.model.DatabaseInfo;
49+
import com.google.refine.util.ParsingUtilities;
4950

5051

5152
public class ExecuteQueryCommand extends DatabaseCommand {
@@ -69,7 +70,7 @@ public void doPost(HttpServletRequest request, HttpServletResponse response)
6970
response.setCharacterEncoding("UTF-8");
7071
response.setHeader("Content-Type", "application/json");
7172
Writer w = response.getWriter();
72-
JSONWriter writer = new JSONWriter(w);
73+
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
7374

7475
try {
7576
DatabaseInfo databaseInfo = DatabaseService.get(databaseConfiguration.getDatabaseType())
@@ -84,22 +85,22 @@ public void doPost(HttpServletRequest request, HttpServletResponse response)
8485
}
8586

8687

87-
writer.object();
88-
writer.key("code");
89-
writer.value("ok");
90-
writer.key("QueryResult");
91-
writer.value(jsonStr);
92-
writer.endObject();
88+
writer.writeStartObject();
89+
writer.writeStringField("code", "ok");
90+
writer.writeStringField("QueryResult", jsonStr);
91+
writer.writeEndObject();
9392

9493

9594
} catch (DatabaseServiceException e) {
9695
logger.error("QueryCommand::Post::DatabaseServiceException::{}", e);
97-
sendError(HttpStatus.SC_BAD_REQUEST, response, writer, e);
96+
sendError(HttpStatus.SC_BAD_REQUEST, response, e);
9897

9998
} catch (Exception e) {
10099
logger.error("QueryCommand::Post::Exception::{}", e);
101-
sendError(HttpStatus.SC_BAD_REQUEST,response, writer, e);
100+
sendError(HttpStatus.SC_BAD_REQUEST,response, e);
102101
} finally {
102+
writer.flush();
103+
writer.close();
103104
w.close();
104105
}
105106
} catch (Exception e) {

0 commit comments

Comments
 (0)