diff --git a/src/main/java/org/apache/ibatis/parsing/XNode.java b/src/main/java/org/apache/ibatis/parsing/XNode.java index 3423dd93380..9c10ae5187f 100644 --- a/src/main/java/org/apache/ibatis/parsing/XNode.java +++ b/src/main/java/org/apache/ibatis/parsing/XNode.java @@ -136,6 +136,18 @@ public String getStringBody(String def) { } } + public String getStringBody(String def, boolean removeBlankLines){ + if(body == null){ + return def; + } else { + if (removeBlankLines) { + return body.replaceAll("(\\n|\\r\\n)", " ").replaceAll("\\t"," "); + } else { + return body; + } + } + } + public Boolean getBooleanBody() { return getBooleanBody(null); } diff --git a/src/main/java/org/apache/ibatis/scripting/xmltags/ExpressionEvaluator.java b/src/main/java/org/apache/ibatis/scripting/xmltags/ExpressionEvaluator.java index be6d4167f74..44138df9675 100644 --- a/src/main/java/org/apache/ibatis/scripting/xmltags/ExpressionEvaluator.java +++ b/src/main/java/org/apache/ibatis/scripting/xmltags/ExpressionEvaluator.java @@ -1,5 +1,5 @@ /** - * Copyright 2009-2015 the original author or authors. + * Copyright 2009-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/main/java/org/apache/ibatis/scripting/xmltags/XMLScriptBuilder.java b/src/main/java/org/apache/ibatis/scripting/xmltags/XMLScriptBuilder.java index 8496b8476c6..749a4300727 100644 --- a/src/main/java/org/apache/ibatis/scripting/xmltags/XMLScriptBuilder.java +++ b/src/main/java/org/apache/ibatis/scripting/xmltags/XMLScriptBuilder.java @@ -61,12 +61,13 @@ public SqlSource parseScriptNode() { } List parseDynamicTags(XNode node) { + final boolean compactedSQL = configuration.isCompactedSQL(); List contents = new ArrayList(); NodeList children = node.getNode().getChildNodes(); for (int i = 0; i < children.getLength(); i++) { XNode child = node.newXNode(children.item(i)); if (child.getNode().getNodeType() == Node.CDATA_SECTION_NODE || child.getNode().getNodeType() == Node.TEXT_NODE) { - String data = child.getStringBody(""); + String data = child.getStringBody("", compactedSQL); TextSqlNode textSqlNode = new TextSqlNode(data); if (textSqlNode.isDynamic()) { contents.add(textSqlNode); diff --git a/src/main/java/org/apache/ibatis/session/Configuration.java b/src/main/java/org/apache/ibatis/session/Configuration.java index f2a60fe03f7..86c410aa2dd 100644 --- a/src/main/java/org/apache/ibatis/session/Configuration.java +++ b/src/main/java/org/apache/ibatis/session/Configuration.java @@ -109,6 +109,7 @@ public class Configuration { protected boolean callSettersOnNulls; protected boolean useActualParamName = true; protected boolean returnInstanceForEmptyRow; + protected boolean compactedSQL = false; protected String logPrefix; protected Class logImpl; @@ -259,6 +260,14 @@ public void setReturnInstanceForEmptyRow(boolean returnEmptyInstance) { this.returnInstanceForEmptyRow = returnEmptyInstance; } + public boolean isCompactedSQL() { + return compactedSQL; + } + + public void setCompactedSQL(boolean compactedSQL) { + this.compactedSQL = compactedSQL; + } + public String getDatabaseId() { return databaseId; } diff --git a/src/test/java/org/apache/ibatis/builder/xml/dynamic/ExpressionEvaluatorTest.java b/src/test/java/org/apache/ibatis/builder/xml/dynamic/ExpressionEvaluatorTest.java index 6df59332b25..9a8525747cb 100644 --- a/src/test/java/org/apache/ibatis/builder/xml/dynamic/ExpressionEvaluatorTest.java +++ b/src/test/java/org/apache/ibatis/builder/xml/dynamic/ExpressionEvaluatorTest.java @@ -1,5 +1,5 @@ /** - * Copyright 2009-2015 the original author or authors. + * Copyright 2009-2017 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.