From 5bb472fa8585fddb38767dd4752a50cd5f51ff61 Mon Sep 17 00:00:00 2001 From: Yasser Zamani Date: Mon, 11 Sep 2017 18:40:34 +0430 Subject: [PATCH] WW-4034 Allows to use custom JSONwriter --- .../src/main/java/org/apache/struts2/json/JSONConstants.java | 1 + .../json/src/main/java/org/apache/struts2/json/JSONUtil.java | 5 +++-- plugins/json/src/main/resources/struts-plugin.xml | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONConstants.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONConstants.java index 2f46769e4..64067c7f2 100644 --- a/plugins/json/src/main/java/org/apache/struts2/json/JSONConstants.java +++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONConstants.java @@ -25,5 +25,6 @@ package org.apache.struts2.json; */ public class JSONConstants { + public static final String JSON_WRITER = "struts.json.writer"; public static final String RESULT_EXCLUDE_PROXY_PROPERTIES = "struts.json.result.excludeProxyProperties"; } diff --git a/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java b/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java index feb8594f2..b68b46cc4 100644 --- a/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java +++ b/plugins/json/src/main/java/org/apache/struts2/json/JSONUtil.java @@ -41,6 +41,7 @@ import java.util.zip.GZIPOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.opensymphony.xwork2.inject.Container; import com.opensymphony.xwork2.inject.Inject; import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; @@ -63,8 +64,8 @@ public class JSONUtil { private static JSONWriter writer = new DefaultJSONWriter(); @Inject - public static void setWriter(JSONWriter writer) { - JSONUtil.writer = writer; + public static void setContainer(Container container) { + JSONUtil.writer = container.getInstance(JSONWriter.class, container.getInstance(String.class, JSONConstants.JSON_WRITER)); } /** diff --git a/plugins/json/src/main/resources/struts-plugin.xml b/plugins/json/src/main/resources/struts-plugin.xml index ec00c1c52..19171e0d1 100644 --- a/plugins/json/src/main/resources/struts-plugin.xml +++ b/plugins/json/src/main/resources/struts-plugin.xml @@ -5,7 +5,9 @@ "http://struts.apache.org/dtds/struts-2.5.dtd"> - + + +