From 12cfed09974f82584c66c460500b5b3a61789e7e Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Thu, 15 Oct 2009 14:56:38 +0000 Subject: [PATCH] Try to deal with encoding git-svn-id: https://svn.argeo.org/commons/trunk@3038 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../server/json/JsonServerSerializer.java | 19 ++++++++++++----- .../argeo/server/jxl/dao/JxlDaoSupport.java | 20 +++++++++++++++++- .../server/jxl/dao/JxlDaoSupportTest.java | 2 +- .../src/test/resources/dao/simple.xls | Bin 6656 -> 6656 bytes 4 files changed, 34 insertions(+), 7 deletions(-) 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 ad69850f1066fba3a7daa2626f67b68e8ec50875..d016ce939d26207b2dbe919b8ea6704b9044cfa7 100644 GIT binary patch delta 483 zcmZutF-yZx5Wag!lb9xLYMZn;=^(|SYPD5Ck?zIOUC>>S7OFy-6D^BIQWavWv8%6WxPHRjd_ zPg)Ug4NcX13Fcs)wyhZ|S`NO^hIOZ(Lxx$0MpoSnf?)U`u8%UthH#YTSrR~tEz%Y~Ds7-?3FL;iM zH-`>_;0JLPK?etocOeuU-rfD)J)VwqG#r-ezgd>80)TAMI^P?t&BANSzCT>X2fM7S zeu)w4wC&8%qT}Ng#m=L32_Cyu`g9Jc?Z#M5`|dGrnUV#?vJJnu4a^Vpa!)|Pf6ow) z+TI5x{z=6IX+fT5`tIN1k;V7}lermyU62$7Ffk@%l8hv!Fo4RK