You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by su...@apache.org on 2018/11/06 15:40:27 UTC
groovy git commit: Make `GProperties` support escaping empty curly
brace, i.e. `{{}}`
Repository: groovy
Updated Branches:
refs/heads/master ee2345816 -> 187617ea8
Make `GProperties` support escaping empty curly brace, i.e. `{{}}`
Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/187617ea
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/187617ea
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/187617ea
Branch: refs/heads/master
Commit: 187617ea83b3a845d8eab9af97c8d642ffd4cd44
Parents: ee23458
Author: danielsun1106 <re...@hotmail.com>
Authored: Tue Nov 6 23:34:53 2018 +0800
Committer: Daniel Sun <su...@apache.org>
Committed: Tue Nov 6 23:38:57 2018 +0800
----------------------------------------------------------------------
src/main/groovy/groovy/util/GProperties.groovy | 15 +++++----------
.../groovy/util/gproperties.properties | 1 +
src/test/groovy/util/GPropertiesTest.groovy | 7 +++++++
3 files changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/groovy/blob/187617ea/src/main/groovy/groovy/util/GProperties.groovy
----------------------------------------------------------------------
diff --git a/src/main/groovy/groovy/util/GProperties.groovy b/src/main/groovy/groovy/util/GProperties.groovy
index efcdca1..fde01dc 100644
--- a/src/main/groovy/groovy/util/GProperties.groovy
+++ b/src/main/groovy/groovy/util/GProperties.groovy
@@ -86,7 +86,7 @@ class GProperties extends Properties {
private static final long serialVersionUID = 6112578636029876860L
public static final String IMPORT_PROPERTIES_KEY = 'import.properties'
private static final Pattern INTERPOLATE_PATTERN = Pattern.compile(/[{](.+?)[}]/)
- private static final Pattern ESCAPE_PATTERN = Pattern.compile(/[{]([{].+?[}])[}]/)
+ private static final Pattern ESCAPE_PATTERN = Pattern.compile(/[{]([{][^{}]*?[}])[}]/)
private static final String LEFT_CURLY_BRACE = '{'
private static final String RIGHT_CURLY_BRACE = '}'
private static final String COMMA = ','
@@ -290,7 +290,7 @@ class GProperties extends Properties {
synchronized void load(Reader reader) throws IOException {
reader.withReader {
super.load(it)
- _importProperties()
+ importPropertiesFromFiles()
}
}
@@ -298,7 +298,7 @@ class GProperties extends Properties {
synchronized void load(InputStream inStream) throws IOException {
inStream.withStream {
super.load(it)
- _importProperties()
+ importPropertiesFromFiles()
}
}
@@ -310,7 +310,7 @@ class GProperties extends Properties {
importPropertiesList << properties
}
- private void _importProperties() {
+ private void importPropertiesFromFiles() {
String importPropertiesPaths = super.getProperty(IMPORT_PROPERTIES_KEY)
if (!importPropertiesPaths?.trim()) {
@@ -322,18 +322,13 @@ class GProperties extends Properties {
return
}
- GProperties importProperties = new GProperties()
def inputstream = GProperties.getResourceAsStream(importPropertiesPath)
if (!inputstream) {
throw new IOException("${importPropertiesPath} does not exist")
}
- inputstream.withStream {
- importProperties.load(it)
- }
-
- importPropertiesList << importProperties
+ importProperties(new GProperties(inputstream))
}
}
http://git-wip-us.apache.org/repos/asf/groovy/blob/187617ea/src/test-resources/groovy/util/gproperties.properties
----------------------------------------------------------------------
diff --git a/src/test-resources/groovy/util/gproperties.properties b/src/test-resources/groovy/util/gproperties.properties
index e096c48..3c68452 100644
--- a/src/test-resources/groovy/util/gproperties.properties
+++ b/src/test-resources/groovy/util/gproperties.properties
@@ -22,6 +22,7 @@ groovy.greeting={greeting.word},{some.name}
groovy.greeting.with.smile={groovy.greeting} :)
groovy.greeting.with.missing=Hello,{none} {0}
groovy.greeting.with.escapes=Hello,{{some.name}}
+groovy.greeting.with.escapes2=Hello, curly brace {{}}
property.character=a
property.character.invalid=abc
property.byte=1
http://git-wip-us.apache.org/repos/asf/groovy/blob/187617ea/src/test/groovy/util/GPropertiesTest.groovy
----------------------------------------------------------------------
diff --git a/src/test/groovy/util/GPropertiesTest.groovy b/src/test/groovy/util/GPropertiesTest.groovy
index 5e84d54..0d8b944 100644
--- a/src/test/groovy/util/GPropertiesTest.groovy
+++ b/src/test/groovy/util/GPropertiesTest.groovy
@@ -79,6 +79,13 @@ class GPropertiesTest extends GroovyTestCase {
assert 'Hello,{some.name}' == gp.getProperty('groovy.greeting.with.escapes')
}
+ void testEscape2() {
+ def gp = new GProperties()
+ gp.load(GPropertiesTest.getResourceAsStream('/groovy/util/gproperties.properties'))
+
+ assert 'Hello, curly brace {}' == gp.getProperty('groovy.greeting.with.escapes2')
+ }
+
void testGetCharacter() {
def gp = new GProperties()
gp.load(GPropertiesTest.getResourceAsStream('/groovy/util/gproperties.properties'))