Migrate database extension out of JSONWriter
This commit is contained in:
parent
47d80002a8
commit
be9ebdcad9
@ -41,10 +41,11 @@ import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import org.json.JSONWriter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
|
||||
import com.google.refine.ProjectManager;
|
||||
import com.google.refine.RefineServlet;
|
||||
import com.google.refine.commands.HttpUtilities;
|
||||
@ -207,30 +208,23 @@ public class DatabaseImportController implements ImportingController {
|
||||
optionObj,
|
||||
exceptions
|
||||
);
|
||||
// String exStr = getExceptionString(exceptions);
|
||||
// logger.info("exceptions::" + exStr);
|
||||
|
||||
Writer w = response.getWriter();
|
||||
JSONWriter writer = new JSONWriter(w);
|
||||
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
|
||||
try {
|
||||
writer.object();
|
||||
writer.writeStartObject();
|
||||
if (exceptions.size() == 0) {
|
||||
job.project.update(); // update all internal models, indexes, caches, etc.
|
||||
writer.key("status");
|
||||
writer.value("ok");
|
||||
writer.writeStringField("status", "ok");
|
||||
} else {
|
||||
writer.key("status");
|
||||
writer.value("error");
|
||||
writer.key("message");
|
||||
writer.value(getExceptionString(exceptions));
|
||||
// writer.array();
|
||||
// writeErrors(writer, exceptions);
|
||||
// writer.endArray();
|
||||
writer.writeStringField("status", "error");
|
||||
writer.writeStringField("message", getExceptionString(exceptions));
|
||||
}
|
||||
writer.endObject();
|
||||
writer.writeEndObject();
|
||||
} catch (JSONException e) {
|
||||
throw new ServletException(e);
|
||||
} finally {
|
||||
writer.flush();
|
||||
writer.close();
|
||||
w.flush();
|
||||
w.close();
|
||||
}
|
||||
|
@ -37,15 +37,17 @@ import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.json.JSONWriter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
|
||||
//import com.google.refine.ProjectManager;
|
||||
import com.google.refine.extension.database.DatabaseConfiguration;
|
||||
import com.google.refine.extension.database.DatabaseService;
|
||||
import com.google.refine.extension.database.DatabaseServiceException;
|
||||
import com.google.refine.extension.database.model.DatabaseInfo;
|
||||
import com.google.refine.util.ParsingUtilities;
|
||||
|
||||
|
||||
public class ConnectCommand extends DatabaseCommand {
|
||||
@ -66,7 +68,7 @@ public class ConnectCommand extends DatabaseCommand {
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.setHeader("Content-Type", "application/json");
|
||||
Writer w = response.getWriter();
|
||||
JSONWriter writer = new JSONWriter(w);
|
||||
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
|
||||
ObjectMapper mapperObj = new ObjectMapper();
|
||||
|
||||
try {
|
||||
@ -74,22 +76,20 @@ public class ConnectCommand extends DatabaseCommand {
|
||||
.connect(databaseConfiguration);
|
||||
String databaseInfoString = mapperObj.writeValueAsString(databaseInfo);
|
||||
response.setStatus(HttpStatus.SC_OK);
|
||||
writer.object();
|
||||
writer.key("code");
|
||||
writer.value("ok");
|
||||
writer.key("databaseInfo");
|
||||
writer.value(databaseInfoString);
|
||||
|
||||
writer.endObject();
|
||||
writer.writeStartObject();
|
||||
writer.writeStringField("code", "ok");
|
||||
writer.writeStringField("databaseInfo", databaseInfoString);
|
||||
writer.writeEndObject();
|
||||
|
||||
} catch (DatabaseServiceException e) {
|
||||
logger.error("ConnectCommand::Post::DatabaseServiceException::{}", e);
|
||||
sendError(HttpStatus.SC_UNAUTHORIZED,response, writer, e);
|
||||
sendError(HttpStatus.SC_UNAUTHORIZED,response, e);
|
||||
}catch (Exception e) {
|
||||
logger.error("ConnectCommand::Post::Exception::{}", e);
|
||||
sendError(HttpStatus.SC_UNAUTHORIZED,response, writer, e);
|
||||
sendError(HttpStatus.SC_UNAUTHORIZED,response, e);
|
||||
} finally {
|
||||
// w.flush();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
w.close();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
@ -33,7 +33,6 @@ import java.io.IOException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.json.JSONWriter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -82,7 +81,7 @@ public abstract class DatabaseCommand extends Command {
|
||||
* @param e
|
||||
* @throws IOException
|
||||
*/
|
||||
protected void sendError(int status, HttpServletResponse response, JSONWriter writer, Exception e)
|
||||
protected void sendError(int status, HttpServletResponse response, Exception e)
|
||||
throws IOException {
|
||||
|
||||
//logger.info("sendError::{}", writer);
|
||||
@ -97,7 +96,7 @@ public abstract class DatabaseCommand extends Command {
|
||||
* @param e
|
||||
* @throws IOException
|
||||
*/
|
||||
protected void sendError(int status, HttpServletResponse response, JSONWriter writer, DatabaseServiceException e)
|
||||
protected void sendError(int status, HttpServletResponse response, DatabaseServiceException e)
|
||||
throws IOException {
|
||||
|
||||
String message = "";
|
||||
|
@ -37,15 +37,17 @@ import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.json.JSONWriter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
|
||||
//import com.google.refine.ProjectManager;
|
||||
import com.google.refine.extension.database.DatabaseConfiguration;
|
||||
import com.google.refine.extension.database.DatabaseService;
|
||||
import com.google.refine.extension.database.DatabaseServiceException;
|
||||
import com.google.refine.extension.database.model.DatabaseInfo;
|
||||
import com.google.refine.util.ParsingUtilities;
|
||||
|
||||
|
||||
public class ExecuteQueryCommand extends DatabaseCommand {
|
||||
@ -69,7 +71,7 @@ public class ExecuteQueryCommand extends DatabaseCommand {
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.setHeader("Content-Type", "application/json");
|
||||
Writer w = response.getWriter();
|
||||
JSONWriter writer = new JSONWriter(w);
|
||||
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
|
||||
|
||||
try {
|
||||
DatabaseInfo databaseInfo = DatabaseService.get(databaseConfiguration.getDatabaseType())
|
||||
@ -84,22 +86,22 @@ public class ExecuteQueryCommand extends DatabaseCommand {
|
||||
}
|
||||
|
||||
|
||||
writer.object();
|
||||
writer.key("code");
|
||||
writer.value("ok");
|
||||
writer.key("QueryResult");
|
||||
writer.value(jsonStr);
|
||||
writer.endObject();
|
||||
writer.writeStartObject();
|
||||
writer.writeStringField("code", "ok");
|
||||
writer.writeStringField("QueryResult", jsonStr);
|
||||
writer.writeEndObject();
|
||||
|
||||
|
||||
} catch (DatabaseServiceException e) {
|
||||
logger.error("QueryCommand::Post::DatabaseServiceException::{}", e);
|
||||
sendError(HttpStatus.SC_BAD_REQUEST, response, writer, e);
|
||||
sendError(HttpStatus.SC_BAD_REQUEST, response, e);
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("QueryCommand::Post::Exception::{}", e);
|
||||
sendError(HttpStatus.SC_BAD_REQUEST,response, writer, e);
|
||||
sendError(HttpStatus.SC_BAD_REQUEST,response, e);
|
||||
} finally {
|
||||
writer.flush();
|
||||
writer.close();
|
||||
w.close();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
@ -38,12 +38,14 @@ import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONWriter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
|
||||
import com.google.refine.extension.database.DatabaseConfiguration;
|
||||
import com.google.refine.extension.database.DatabaseUtils;
|
||||
import com.google.refine.util.ParsingUtilities;
|
||||
|
||||
|
||||
public class SavedConnectionCommand extends DatabaseCommand {
|
||||
@ -120,51 +122,38 @@ public class SavedConnectionCommand extends DatabaseCommand {
|
||||
private void writeSavedConnectionResponse(HttpServletResponse response, DatabaseConfiguration savedConnection) throws IOException, JSONException {
|
||||
Writer w = response.getWriter();
|
||||
try {
|
||||
JSONWriter writer = new JSONWriter(w);
|
||||
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
|
||||
|
||||
writer.object();
|
||||
writer.key(DatabaseUtils.SAVED_CONNECTION_KEY);
|
||||
writer.array();
|
||||
writer.writeStartObject();
|
||||
writer.writeArrayFieldStart(DatabaseUtils.SAVED_CONNECTION_KEY);
|
||||
|
||||
writer.object();
|
||||
writer.key("connectionName");
|
||||
writer.value(savedConnection.getConnectionName());
|
||||
writer.writeStartObject();
|
||||
writer.writeStringField("connectionName", savedConnection.getConnectionName());
|
||||
|
||||
writer.key("databaseType");
|
||||
writer.value(savedConnection.getDatabaseType());
|
||||
writer.writeStringField("databaseType", savedConnection.getDatabaseType());
|
||||
|
||||
writer.key("databaseHost");
|
||||
writer.value(savedConnection.getDatabaseHost());
|
||||
writer.writeStringField("databaseHost", savedConnection.getDatabaseHost());
|
||||
|
||||
writer.key("databasePort");
|
||||
writer.value(savedConnection.getDatabasePort());
|
||||
writer.writeNumberField("databasePort", savedConnection.getDatabasePort());
|
||||
|
||||
writer.key("databaseName");
|
||||
writer.value(savedConnection.getDatabaseName());
|
||||
|
||||
writer.key("databasePassword");
|
||||
writer.writeStringField("databaseName", savedConnection.getDatabaseName());
|
||||
|
||||
//
|
||||
String dbPasswd = savedConnection.getDatabasePassword();
|
||||
if(dbPasswd != null && !dbPasswd.isEmpty()) {
|
||||
dbPasswd = DatabaseUtils.decrypt(savedConnection.getDatabasePassword());
|
||||
//logger.info("Decrypted Password::" + dbPasswd);
|
||||
}
|
||||
writer.value(dbPasswd);
|
||||
//
|
||||
|
||||
// writer.value(savedConnection.getDatabasePassword());
|
||||
writer.writeStringField("databasePassword", dbPasswd);
|
||||
|
||||
writer.key("databaseSchema");
|
||||
writer.value(savedConnection.getDatabaseSchema());
|
||||
writer.writeStringField("databaseSchema", savedConnection.getDatabaseSchema());
|
||||
|
||||
writer.key("databaseUser");
|
||||
writer.value(savedConnection.getDatabaseUser());
|
||||
writer.writeStringField("databaseUser", savedConnection.getDatabaseUser());
|
||||
|
||||
writer.endObject();
|
||||
writer.endArray();
|
||||
writer.writeEndObject();
|
||||
writer.writeEndArray();
|
||||
|
||||
writer.endObject();
|
||||
writer.writeEndObject();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
|
||||
}finally {
|
||||
w.flush();
|
||||
@ -183,54 +172,47 @@ public class SavedConnectionCommand extends DatabaseCommand {
|
||||
try {
|
||||
|
||||
List<DatabaseConfiguration> savedConnections = DatabaseUtils.getSavedConnections();
|
||||
JSONWriter writer = new JSONWriter(w);
|
||||
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
|
||||
|
||||
writer.object();
|
||||
writer.key(DatabaseUtils.SAVED_CONNECTION_KEY);
|
||||
writer.array();
|
||||
writer.writeStartObject();
|
||||
writer.writeArrayFieldStart(DatabaseUtils.SAVED_CONNECTION_KEY);
|
||||
|
||||
int size = savedConnections.size();
|
||||
|
||||
for (int i = 0; i < size; i++) {
|
||||
|
||||
writer.object();
|
||||
writer.writeStartObject();
|
||||
DatabaseConfiguration dbConfig = (DatabaseConfiguration) savedConnections.get(i);
|
||||
|
||||
writer.key("connectionName");
|
||||
writer.value(dbConfig.getConnectionName());
|
||||
writer.writeStringField("connectionName", dbConfig.getConnectionName());
|
||||
|
||||
writer.key("databaseType");
|
||||
writer.value(dbConfig.getDatabaseType());
|
||||
writer.writeStringField("databaseType", dbConfig.getDatabaseType());
|
||||
|
||||
writer.key("databaseHost");
|
||||
writer.value(dbConfig.getDatabaseHost());
|
||||
writer.writeStringField("databaseHost", dbConfig.getDatabaseHost());
|
||||
|
||||
writer.key("databasePort");
|
||||
writer.value(dbConfig.getDatabasePort());
|
||||
writer.writeNumberField("databasePort", dbConfig.getDatabasePort());
|
||||
|
||||
writer.key("databaseName");
|
||||
writer.value(dbConfig.getDatabaseName());
|
||||
writer.writeStringField("databaseName", dbConfig.getDatabaseName());
|
||||
|
||||
writer.key("databasePassword");
|
||||
|
||||
String dbPasswd = dbConfig.getDatabasePassword();
|
||||
if(dbPasswd != null && !dbPasswd.isEmpty()) {
|
||||
dbPasswd = DatabaseUtils.decrypt(dbConfig.getDatabasePassword());
|
||||
}
|
||||
// writer.value(dbConfig.getDatabasePassword());
|
||||
writer.value(dbPasswd);
|
||||
writer.writeStringField("databasePassword", dbPasswd);
|
||||
|
||||
writer.key("databaseSchema");
|
||||
writer.value(dbConfig.getDatabaseSchema());
|
||||
writer.writeStringField("databaseSchema", dbConfig.getDatabaseSchema());
|
||||
|
||||
writer.key("databaseUser");
|
||||
writer.value(dbConfig.getDatabaseUser());
|
||||
writer.writeStringField("databaseUser", dbConfig.getDatabaseUser());
|
||||
|
||||
writer.endObject();
|
||||
writer.writeEndObject();
|
||||
|
||||
}
|
||||
writer.endArray();
|
||||
writer.endObject();
|
||||
writer.writeEndArray();
|
||||
writer.writeEndObject();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
// logger.info("Saved Connection Get Response sent");
|
||||
} finally {
|
||||
w.flush();
|
||||
|
@ -36,13 +36,15 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.json.JSONWriter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
|
||||
import com.google.refine.extension.database.DatabaseConfiguration;
|
||||
import com.google.refine.extension.database.DatabaseService;
|
||||
import com.google.refine.extension.database.DatabaseServiceException;
|
||||
import com.google.refine.util.ParsingUtilities;
|
||||
|
||||
|
||||
|
||||
@ -69,7 +71,7 @@ public class TestConnectCommand extends DatabaseCommand {
|
||||
response.setHeader("Content-Type", "application/json");
|
||||
|
||||
Writer w = response.getWriter();
|
||||
JSONWriter writer = new JSONWriter(w);
|
||||
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
|
||||
|
||||
try {
|
||||
|
||||
@ -77,20 +79,18 @@ public class TestConnectCommand extends DatabaseCommand {
|
||||
.testConnection(databaseConfiguration);
|
||||
|
||||
response.setStatus(HttpStatus.SC_OK);
|
||||
writer.object();
|
||||
writer.writeStartObject();
|
||||
|
||||
writer.key("connectionResult");
|
||||
writer.value(connectionTestResult);
|
||||
writer.key("code");
|
||||
writer.value("ok");
|
||||
writer.endObject();
|
||||
writer.writeBooleanField("connectionResult", connectionTestResult);
|
||||
writer.writeStringField("code", "ok");
|
||||
writer.writeEndObject();
|
||||
|
||||
} catch (DatabaseServiceException e) {
|
||||
logger.error("TestConnectCommand::Post::DatabaseServiceException::{}", e);
|
||||
sendError(HttpStatus.SC_UNAUTHORIZED,response, writer, e);
|
||||
sendError(HttpStatus.SC_UNAUTHORIZED,response, e);
|
||||
} finally {
|
||||
// writer.endObject();
|
||||
// w.flush();
|
||||
writer.flush();
|
||||
writer.close();
|
||||
w.close();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
@ -37,15 +37,17 @@ import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.http.HttpStatus;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.json.JSONWriter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonGenerator;
|
||||
|
||||
//import com.google.refine.ProjectManager;
|
||||
import com.google.refine.extension.database.DatabaseConfiguration;
|
||||
import com.google.refine.extension.database.DatabaseService;
|
||||
import com.google.refine.extension.database.DatabaseServiceException;
|
||||
import com.google.refine.extension.database.model.DatabaseInfo;
|
||||
import com.google.refine.util.ParsingUtilities;
|
||||
|
||||
|
||||
public class TestQueryCommand extends DatabaseCommand {
|
||||
@ -70,7 +72,7 @@ public class TestQueryCommand extends DatabaseCommand {
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
response.setHeader("Content-Type", "application/json");
|
||||
Writer w = response.getWriter();
|
||||
JSONWriter writer = new JSONWriter(w);
|
||||
JsonGenerator writer = ParsingUtilities.mapper.getFactory().createGenerator(w);
|
||||
|
||||
try {
|
||||
DatabaseInfo databaseInfo = DatabaseService.get(dbConfig.getDatabaseType())
|
||||
@ -83,22 +85,22 @@ public class TestQueryCommand extends DatabaseCommand {
|
||||
logger.debug("TestQueryCommand::Post::Result::{} " ,jsonStr);
|
||||
}
|
||||
|
||||
writer.object();
|
||||
writer.key("code");
|
||||
writer.value("ok");
|
||||
writer.key("QueryResult");
|
||||
writer.value(jsonStr);
|
||||
writer.endObject();
|
||||
writer.writeStartObject();
|
||||
writer.writeStringField("code", "ok");
|
||||
writer.writeStringField("QueryResult", jsonStr);
|
||||
writer.writeEndObject();
|
||||
|
||||
|
||||
} catch (DatabaseServiceException e) {
|
||||
logger.error("TestQueryCommand::Post::DatabaseServiceException::{}", e);
|
||||
sendError(HttpStatus.SC_BAD_REQUEST, response, writer, e);
|
||||
sendError(HttpStatus.SC_BAD_REQUEST, response, e);
|
||||
|
||||
} catch (Exception e) {
|
||||
logger.error("TestQueryCommand::Post::Exception::{}", e);
|
||||
sendError(HttpStatus.SC_BAD_REQUEST,response, writer, e);
|
||||
sendError(HttpStatus.SC_BAD_REQUEST,response, e);
|
||||
} finally {
|
||||
writer.flush();
|
||||
writer.close();
|
||||
w.close();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
Loading…
Reference in New Issue
Block a user