From: Mathieu Baudier Date: Thu, 15 Oct 2009 14:56:38 +0000 (+0000) Subject: Try to deal with encoding X-Git-Tag: argeo-commons-2.1.30~1741 X-Git-Url: http://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=12cfed09974f82584c66c460500b5b3a61789e7e Try to deal with encoding git-svn-id: https://svn.argeo.org/commons/trunk@3038 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java index 90a9c135c..4f762f168 100644 --- a/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java +++ b/server/runtime/org.argeo.server.json/src/main/java/org/argeo/server/json/JsonServerSerializer.java @@ -21,23 +21,32 @@ public class JsonServerSerializer implements ServerSerializer { private JsonFactory jsonFactory = new JsonFactory(); private ObjectMapper objectMapper = new ObjectMapper(); - private Boolean prettyPrint = true; + private Boolean prettyPrint = false; + + // private String encoding = "UTF8"; public void serialize(Object obj, HttpServletRequest request, HttpServletResponse response) { JsonGenerator jsonGenerator = null; try { response.setContentType("application/json"); + // response.setHeader("Content-Encoding", "UTF-8"); StringWriter stringWriter = null; if (log.isTraceEnabled()) { stringWriter = new StringWriter(); - jsonGenerator = jsonFactory.createJsonGenerator(stringWriter); - } else { - jsonGenerator = jsonFactory.createJsonGenerator(response - .getWriter()); + JsonGenerator jsonGeneratorLog = jsonFactory + .createJsonGenerator(stringWriter); + jsonGeneratorLog.useDefaultPrettyPrinter(); + objectMapper.writeValue(jsonGenerator, obj); + jsonGeneratorLog.close(); } + // jsonGenerator = jsonFactory.createJsonGenerator(response + // .getOutputStream(), JsonEncoding.valueOf(encoding)); + jsonGenerator = jsonFactory.createJsonGenerator(response + .getWriter()); + if (prettyPrint) jsonGenerator.useDefaultPrettyPrinter(); diff --git a/server/runtime/org.argeo.server.jxl/src/main/java/org/argeo/server/jxl/dao/JxlDaoSupport.java b/server/runtime/org.argeo.server.jxl/src/main/java/org/argeo/server/jxl/dao/JxlDaoSupport.java index 015dc06be..dbd0793d9 100644 --- a/server/runtime/org.argeo.server.jxl/src/main/java/org/argeo/server/jxl/dao/JxlDaoSupport.java +++ b/server/runtime/org.argeo.server.jxl/src/main/java/org/argeo/server/jxl/dao/JxlDaoSupport.java @@ -1,6 +1,7 @@ package org.argeo.server.jxl.dao; import java.io.InputStream; +import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -13,6 +14,7 @@ import jxl.FormulaCell; import jxl.JXLException; import jxl.Sheet; import jxl.Workbook; +import jxl.WorkbookSettings; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; @@ -45,6 +47,8 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, private List workbooks = new ArrayList(); + private Integer charset = 0; + public void afterPropertiesSet() throws Exception { init(); } @@ -85,7 +89,9 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, public void load(InputStream in, List references, Map> tempRefs) { try { - Workbook workbook = Workbook.getWorkbook(in); + WorkbookSettings workbookSettings = new WorkbookSettings(); + workbookSettings.setCharacterSet(charset); + Workbook workbook = Workbook.getWorkbook(in, workbookSettings); for (Sheet sheet : workbook.getSheets()) { loadSheet(sheet, references, tempRefs); } @@ -321,6 +327,18 @@ public class JxlDaoSupport implements LightDaoSupport, ApplicationContextAware, this.classLoader = classLoader; } + public List> getAdditionalClasses() { + return additionalClasses; + } + + public void setAdditionalClasses(List> additionalClasses) { + this.additionalClasses = additionalClasses; + } + + public void setCharset(Integer charset) { + this.charset = charset; + } + public static class Reference { private Object object; private String property; diff --git a/server/runtime/org.argeo.server.jxl/src/test/java/org/argeo/server/jxl/dao/JxlDaoSupportTest.java b/server/runtime/org.argeo.server.jxl/src/test/java/org/argeo/server/jxl/dao/JxlDaoSupportTest.java index 0a003b6b7..76c44a7f5 100644 --- a/server/runtime/org.argeo.server.jxl/src/test/java/org/argeo/server/jxl/dao/JxlDaoSupportTest.java +++ b/server/runtime/org.argeo.server.jxl/src/test/java/org/argeo/server/jxl/dao/JxlDaoSupportTest.java @@ -28,6 +28,6 @@ public class JxlDaoSupportTest extends TestCase { .getString()); List simpleObjects = jsd.list(SimpleObject.class, null); - assertEquals(2, simpleObjects.size()); + assertEquals(4, simpleObjects.size()); } } diff --git a/server/runtime/org.argeo.server.jxl/src/test/resources/dao/simple.xls b/server/runtime/org.argeo.server.jxl/src/test/resources/dao/simple.xls index ad69850f1..d016ce939 100644 Binary files a/server/runtime/org.argeo.server.jxl/src/test/resources/dao/simple.xls and b/server/runtime/org.argeo.server.jxl/src/test/resources/dao/simple.xls differ